Skip to content

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 ✅ Yes ❌ No
txtorcon An implementation of the control-spec for Tor using the Twisted networking library for Python ControlPort Python ✅ Yes ❌ No
Bine Go library for accessing and embedding Tor clients and servers ControlPort Go ✅ Yes ❌ No
libCwtch Decentralized, privacy-preserving, multi-party messaging protocol for building metadata resistant applications Bine C, Go, Rust ✅ Yes ❌ No
Gosling For creating applications providing anonymous, secure, and private peer-to-peer functionality using Onion Services tor-interface C, C++, Rust, Python, Java ✅ Yes Underway
iroh Modular networking stack that supports Onion Services as a custom transport ControlPort Rust ✅ Yes ❌ No
onyums axum wrapper for serving web-based Onion Services tor-hsservice Rust ❌ No ✅ Yes
artiqwest simple HTTP client that routes requests through the Tor network (can access Onion Services) arti-client Rust ❌ No ✅ Yes
torrosion A Tor library for Rust Own implementation Rust ❌ No ❌ No