Crate vinezombie
source ·Expand description
§vinezombie
Vinezombie is a library for writing IRC software. For a basic overview, see its README on Github or sr.ht.
Vinezombie is very modular. The flexibility it offers comes at the expense of a steeper learning curve. The examples may be useful in learning how to use this library.
§Optional Features
Vinezombie has no mandatory dependencies besides std
.
The default feature set is chosen to be enough to write IRC bots,
and includes the following:
base64
: Required for SASL. Adds base64 encoding/decoding.client
: Adds utilities for building client-side IRC software.crypto
: Addsring
-based cryptography, required for some SASL authenticators. Also addsring
as a crypto provider to rustls iftls
is enabled.tls
: Adds utilities for working with rustls. Does NOT pull in any crypto providers.tls-tokio
: Impliestls
andtokio
. Adds support for asynchronous TLS connections.tokio
: Adds functions for Tokio-based I/O.
The following optional features are also available:
serde
: Adds implementations ofSerialize
+Deserialize
for certain types.tracing
: Adds logging to a few locations in the library. If your application useslog
, this explains how to getlog
events from this library.tokio-codec
: Adds support for parsing and writing IRC messages withtokio_util
.whoami
: Enables functions for creating strings from local user info.
§Features
Vinezombie includes parsers for IRCv3 messages and their components
which can be found in ircmsg
.
If you are writing client-side software,
the client
module includes an assortment of utilities
that may be useful while remaining close to the raw IRC protocol,
including a rudimentary event-handling system.
Modules§
- client
client
Utilities for building IRC clients or bots. - Error types.
- Representations of IRC messages and their components.
- Well-known values for IRC messages.
- Utilities for advanced control over ownership.
- Definitions for IRC state tracking.
- Byte strings and string manipulation utilities.
Macros§
- ctcp_version_handler
client
Creates aCtcpVersion
handler using the current package’s information.