Expand description
This library’s goal is to offer a highly available IRC client with an easy to use API.
Automatic reconnection is built into the design. It uses a channel-like design, where
events are received from a Reader
and commands are sent from one or many Writer
.
The Writer
are thread safe and can be cheaply cloned.
Here’s a canonical example.
extern crate encoding;
extern crate loirc;
use encoding::all::UTF_8;
use loirc::{connect, Code, Event};
fn main() {
// connect to freenode and use the default reconnection settings.
let (writer, reader) = connect("irc.freenode.net:6667", Default::default(), UTF_8).unwrap();
writer.raw(format!("USER {} 8 * :{}\n", "username", "realname"));
writer.raw(format!("NICK {}\n", "nickname"));
// Block until something happens.
for event in reader.iter() {
match event {
// Handle messages
Event::Message(msg) => {
if msg.code == Code::RplWelcome {
writer.raw(format!("JOIN {}\n", "#channel"));
}
}
// Handle other events, such as disconnects.
_ => {}
}
}
}
Structs§
- Activity
Monitor - This struct monitors a connection’s activity.
- Message
- Represents a message received from the server.
- Monitor
Settings - These settings tell the monitor how to behave.
- Prefix
User - User prefix representation.
- Writer
- Used to send messages to the IRC server.
Enums§
- Code
- Representation of IRC commands, replies and errors.
- Error
- Errors produced by the Writer.
- Event
- This is the comprehensive set of events that can occur.
- Parse
Error - Error generated by the parser.
- Prefix
- Prefix of the message.
- Reconnection
Settings - These settings tell the reconnection process how to behave.
Functions§
- connect
- Create a connection to the given address.
Type Aliases§
- Reader
- This the receiving end of a
mpsc
channel.