Skip to content

Repository files navigation

Stream Documentation Matrix Mastodon Sponsor

Blocking stream and TLS utils for Pimalaya

It opens the streams those clients run on: TCP, TLS and Unix-domain sockets, proxy resolution, and the plain-to-TLS upgrade STARTTLS needs. Anyone building a client on io-imap, io-smtp, io-http or a sibling is a first-class consumer.

Note

The crate stays on 0.x, which means breaking changes land in minor bumps and never in patch bumps. Pin a minor version and read the changelog before upgrading.

Table of contents

Features

  • Blocking stream: one handle over a TCP socket, a Unix-domain socket or a TLS session, with the STARTTLS upgrade (requires std feature).
  • Proxy: tunnel through SOCKS5 or HTTP CONNECT, resolved from the ambient proxy variables by default (requires std feature).
  • Retry: a socket reporting it is not ready is retried under a per-stream strategy, instead of ending the exchange (requires std feature).
  • TLS support:
    • Rustls with ring crypto (requires rustls-ring feature, enabled by default)
    • Rustls with aws crypto (requires rustls-aws feature)
    • Native TLS (requires native-tls feature)

Tip

pimalaya-stream is written in Rust and uses cargo features to gate TLS providers. The default feature set is declared in Cargo.toml or on docs.rs.

Usage

See documentation at docs.rs.

Examples

See complete examples at ./examples.

License

This project is licensed under either of:

Social

Sponsoring

nlnet

Special thanks to the NLnet foundation and the European Commission that have been financially supporting the project for years:

This program is part of Pimalaya, free software funded entirely by grants and donations. If you find it useful, consider sponsoring its development:

GitHub Ko-fi Buy Me a Coffee Liberapay thanks.dev PayPal

About

I/O-free socket client library written in Rust

Topics

Resources

Contributing

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages