Skip to main content

Crate legion_protocol

Crate legion_protocol 

Source
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