Stream [](https://docs.rs/pimalaya-stream/latest/pimalaya_stream) [](https://matrix.to/#/#pimalaya:matrix.org) [](https://fosstodon.org/@pimalaya) [](https://pimalaya.org/sponsor/)

August 15, 2026 · View on GitHub

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