Themis provides strong, usable cryptography for busy people
Themis is an open-source high-level cryptographic services library for securing data during authentication, storage, messaging, network exchange, etc. Themis solves 90% of typical data protection use cases that are common for most apps.
Themis helps to build both simple and complex cryptographic features easily, quickly, and securely. Themis allows developers to focus on the main thing: developing their applications.
Encrypt stored secrets in your apps and backend: API keys, session tokens, files.
Encrypt sensitive data fields before storing in database ("application-side field-level encryption").
Support searchable encryption, data tokenization and data masking using Themis and Acra.
Exchange secrets securely: share sensitive data between parties, build simple chat app between patients and doctors.
Build end-to-end encryption schemes with centralised or decentralised architecture: encrypt data locally on one app, use it encrypted everywhere, decrypt only for authenticated user.
Maintain real-time secure sessions: send encrypted messages to control connected devices from your app, receive real-time sensitive data from your apps to your backend.
Compare secrets between parties without revealing them (zero-knowledge proof-based authentication).
One cryptographic library that fits them all: Themis is the best fit for multi-platform apps (e.g., iOS+Android+Electron app with Node.js backend) because it provides 100% compatible API and works in the same way across all supported platforms.
Themis provides ready-made building blocks (“cryptosystems”) which simplify usage of core cryptographic security operations.
Themis provides 4 important cryptographic services:
We created Themis to build other products on top of it - i.e. Acra and Hermes.
Refer to the Installation page to install Themis for your mobile, web, desktop, or server-side application. We highly recommend installation packages instead of building from source.
Themis is available for the following languages/platforms, refer to language howtos for each:
| Platform | Documentation | Examples | Version |
|---|---|---|---|
| ⚛️ React Native (iOS, Android) | React Native Howto | docs/examples/react-native | |
| 🔶 Swift (iOS, macOS) | Swift Howto | docs/examples/swift | |
| 📱 Objective-C (iOS, macOS) | Objective-C Howto | docs/examples/objc | |
| ☕️ Java (Desktop) | Java (Desktop) Howto | Java projects | |
| ☎️ Java (Android) | Java (Android) Howto | Android projects | |
| 📞 Kotlin (Android) | Java (Android) Howto | Android projects | |
| 🔻 Ruby | Ruby Howto | docs/examples/ruby | |
| 🐍 Python | Python Howto | docs/examples/python | |
| 🐘 PHP | PHP Howto | docs/examples/php | |
| ➕ C++ | CPP Howto | docs/examples/c++ | |
| 🍭 Node.js | Javascript (Node.js) Howto | docs/examples/js | |
| 🖥 WebAssembly | Javascript (WebAssembly) Howto | docs/examples/js | |
| 🐹 Go | Go Howto | docs/examples/go | |
| 🦀 Rust | Rust Howto | docs/examples/rust | |
| 🕸 С++ PNaCl for Google Chrome | WebThemis project |
Themis supports following CPU architectures: x86_64/i386, ARM, Apple Silicon (ARM64), various Android architectures.
We build and verify Themis on the latest stable OS versions:
We plan to expand this list with a broader set of platforms. If you'd like to help improve or bring Themis to your favourite platform or language — get in touch.
Documentation for Themis contains the ever-evolving official docs, which covers everything from deployment guidelines to use cases, with brief explanations of cryptosystems and architecture behind the main Themis library.
Refer to the documentation to learn more about:
- cryptography in Themis (Themis cryptosystems and attacks on them, cryptography donors, key management advice, FIPS 140-2 and GOST),
- debugging and troubleshooting Themis (command-line utilities, thread safety, migration guidelines between Themis versions),
- Themis architecture,
- Themis security (Themis and OWASP, Themis development security practices),
- community behind Themis (contributing guidelines, credits and honorable mentions, projects that use Themis, tutorials, workshops and talks).
Themis relies on proven cryptographic algorithms implemented by well-known cryptography libraries such as OpenSSL, LibreSSL, BoringSSL. Refer to Cryptography in Themis docs to learn more.
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations, and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.
The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution make it eligible f
$ claude mcp add themis \
-- python -m otcore.mcp_server <graph>