Onion Services Libraries¶
Considering to add Onion Service support to your application? Here we maintain a matrix of available libraries.
Info
This page merely acknowledges the existence of a given library, and does not necessarily endorses or recommends it.
While some libraries are maintained by Tor, like Stem, and some by people who also work at Tor, like libCwtch and Gosling, there are others maintained by entirely different teams.
Feature set, maintenance status, security coverage and other characteristics may vary, so make sure to check each library documentation for details.
Last updated on 2026-02-11.
| Library | Description | Interfacing | Bindings for | For C Tor? | For Arti? |
|---|---|---|---|---|---|
| Stem | Python controller library for Tor with Onion Service support | ControlPort | Python | ||
| txtorcon | An implementation of the control-spec for Tor using the Twisted networking library for Python | ControlPort | Python | ||
| Bine | Go library for accessing and embedding Tor clients and servers | ControlPort | Go | ||
| libCwtch | Decentralized, privacy-preserving, multi-party messaging protocol for building metadata resistant applications | Bine | C, Go, Rust | ||
| Gosling | For creating applications providing anonymous, secure, and private peer-to-peer functionality using Onion Services | tor-interface | C, C++, Rust, Python, Java | Underway | |
| iroh | Modular networking stack that supports Onion Services as a custom transport | ControlPort | Rust | ||
| onyums | axum wrapper for serving web-based Onion Services | tor-hsservice | Rust | ||
| artiqwest | simple HTTP client that routes requests through the Tor network (can access Onion Services) | arti-client | Rust | ||
| torrosion | A Tor library for Rust | Own implementation | Rust |