Protect structured data wherever it lives.
Open source data protection — cross-language SDKs and native database integrations. Format-preserving encryption that fits your existing columns, schemas, and workflows.
| Language | Package | Install |
|---|---|---|
| Java | io.cyphera:cyphera |
|
| Rust | cyphera |
|
| Go | go get github.com/cyphera-labs/cyphera-go |
|
| Python | pip install cyphera |
|
| Node.js | npm install cyphera |
|
| .NET | dotnet add package Cyphera |
|
| PHP | composer require cyphera/cyphera |
|
| Ruby | gem install cyphera |
| Platform | Repo | Type | Powered By | SDK Version |
|---|---|---|---|---|
| Trino | cyphera-trino | SQL UDF plugin | cyphera-java | 0.0.1-alpha.3 |
| PostgreSQL | cyphera-postgres | Native extension (pgrx) | cyphera-rust | 0.0.1-alpha.1 |
| Snowflake | cyphera-snowflake | Java UDF | cyphera-java | 0.0.1-alpha.3 |
| Databricks | cyphera-databricks | Spark UDF | cyphera-java | 0.0.1-alpha.3 |
| BigQuery | cyphera-bq | Remote UDF | cyphera-go | not wired |
| Informatica | cyphera-informatica | Java transformation | cyphera-java | 0.0.1-alpha.3 |
| Striim | cyphera-striim | UDF + Open Processor | cyphera-java | 0.0.1-alpha.3 |
| Kafka Connect | cyphera-kafka-connect | SMT (Single Message Transform) | cyphera-java | 0.0.1-alpha.3 |
| Hibernate | cyphera-hibernate | @CypheraProtect annotation | cyphera-java | 0.0.1-alpha.3 |
| Apache NiFi | cyphera-nifi | NiFi Processor | cyphera-java | 0.0.1-alpha.3 |
| Apache Flink | cyphera-flink | Flink SQL UDF | cyphera-java | 0.0.1-alpha.3 |
| StreamSets | cyphera-streamsets | StreamSets Processor | cyphera-java | 0.0.1-alpha.3 |
| Spring Boot | cyphera-spring | Auto-configured starter | cyphera-java | 0.0.1-alpha.3 |
All seven SDKs produce identical output for the same inputs:
Input: 123-45-6789
Java: T01i6J-xF-07pX
Rust: T01i6J-xF-07pX
Node: T01i6J-xF-07pX
Python: T01i6J-xF-07pX
Go: T01i6J-xF-07pX
.NET: T01i6J-xF-07pX
PHP: T01i6J-xF-07pX
Encrypt in Go, decrypt in Python. One policy file, every language, every database.
from cyphera import Cyphera
c = Cyphera.load()
protected = c.protect("123-45-6789", "ssn") # → "T01i6J-xF-07pX"
accessed = c.access(protected) # → "123-45-6789"- Website: cyphera.io
- License: Apache 2.0
Copyright 2026 Horizon Digital Engineering LLC