Expand description
§Legion Protocol
A secure, IRC-compatible communication protocol with E2E encryption support.
This crate provides comprehensive support for the IRC protocol with particular emphasis on IRCv3 capabilities and the latest 2024-2025 draft specifications.
§Features
- Full IRCv3 capability negotiation
- Message parsing and serialization with tags support
- SASL authentication mechanisms
- Security validation and DoS protection
- Bleeding-edge 2024-2025 draft features
- Both client and server-side utilities
§Examples
use legion_protocol::{IrcMessage, Command, Capability};
// Parse an IRC message with tags
let msg: IrcMessage = "@id=123;time=2023-01-01T00:00:00.000Z PRIVMSG #channel :Hello world"
.parse().unwrap();
// Create a new message
let msg = IrcMessage::new("PRIVMSG")
.with_params(vec!["#channel".to_string(), "Hello".to_string()])
.with_tag("id", Some("123".to_string()));Re-exports§
pub use error::IronError;pub use error::Result;pub use message::IrcMessage;pub use command::Command;pub use capabilities::Capability;pub use capabilities::CapabilitySet;pub use capabilities::CapabilityHandler;pub use replies::Reply;pub use utils::ChannelType;pub use iron::IronSession;pub use iron::IronVersion;pub use iron::IronNegotiationResult;pub use iron::IronChannelHandler;pub use iron::ChannelJoinResult;pub use iron::IronChannelError;pub use admin::AdminOperation;pub use admin::MemberOperation;pub use admin::BanOperation;pub use admin::KeyOperation;pub use admin::MemberRole;pub use admin::ChannelMode;pub use admin::ChannelSettings;pub use admin::AdminResult;pub use admin::ChannelAdmin;pub use admin::Permission;
Modules§
- admin
- Legion Protocol channel administration
- capabilities
- IRCv3 capability negotiation and management
- command
- IRC command parsing and representation
- constants
- Protocol constants used throughout the IRC specification
- error
- Error types for the Legion Protocol library
- iron
- Legion Protocol extensions and handling (legacy Iron Protocol support)
- message
- IRC message parsing and serialization
- replies
- IRC numeric replies and error codes
- sasl
- SASL (Simple Authentication and Security Layer) support for IRC
- utils
- Utility functions for IRC protocol handling
- validation
- Protocol validation and security checks