Files
vinezombie/doc/rustdoc/lib.md
TheDaemoness 6267f4c777 Add crypto feature, update to rustls 0.23
rustls 0.22 adds support for alternate crypto providers;
0.23 defaults to aws_lc_rs. The tls feature now pulls in NO crypto providers,
but expects a process-default crypto provider to be set before doing TLS.
The crypto feature pulls in ring and adds it as a provider for rustls,
as we'll be using ring anyway for fancier SASL auths.

Due to the 78-column limit being cumbersome on Cargo.toml,
it has been restricted to only apply to markdown files.
2024-04-25 15:25:07 -07:00

1.8 KiB

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: Adds ring-based cryptography, required for some SASL authenticators. Also adds ring as a crypto provider to rustls if tls is enabled.
  • tls: Adds utilities for working with rustls. Does NOT pull in any crypto providers.
  • tls-tokio: Implies tls and tokio. Adds support for asynchronous TLS connections.
  • tokio: Adds functions for Tokio-based I/O.

The following optional features are also available:

  • serde: Adds implementations of Serialize+Deserialize for certain types.
  • tracing: Adds logging to a few locations in the library. If your application uses log, this explains how to get log events from this library.
  • 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][crate::ircmsg].

If you are writing client-side software, the [client][crate::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.