IPCrypt Implementations
IPCrypt has been implemented in multiple programming languages to ensure broad accessibility and ease of integration across different platforms and environments. Each implementation follows the specification and provides the same cryptographic guarantees.
Available Implementations
Below is a comprehensive list of all available IPCrypt implementations. Click on an implementation to view detailed documentation, installation instructions, and usage examples.
Python
Python
Reference implementation with all four modes.
✓ Detailed documentation available
Documentation
GitHub
C
C
High-performance implementation (ipcrypt2).
GitHub
C
libsodium
High-performance implementation of IPCrypt.
✓ Detailed documentation available
Documentation
GitHub
JavaScript
JavaScript
Browser and Node.js compatible implementation.
GitHub
npm
Go
Go
Concurrent-friendly implementation for Go applications.
GitHub
Java
Java
Native implementation for Java applications.
GitHub
Lua
Lua
Lightweight implementation for Lua applications.
GitHub
Swift
Swift
Native implementation for iOS, macOS, and Swift applications.
GitHub
Elixir
Elixir
Native implementation for Elixir applications.
GitHub
Ruby
Ruby
Native implementation for Ruby applications.
GitHub
Kotlin
Kotlin
Native implementation for Kotlin applications.
GitHub
AWK
AWK
Lightweight implementation for AWK scripting.
GitHub
Dart
Dart
Native implementation for Dart and Flutter applications.
✓ Detailed documentation available
Documentation
GitHub
pub.dev
Zig
Zig
Low-level implementation with compile-time features.
GitHub
PHP
PHP
Web-friendly implementation for PHP applications.
GitHub
D
D
Bindings to the C implementation (d-ipcrypt2).
GitHub
Implementation Comparison
| Language |
Type |
Deterministic |
PFX |
ND (KIASU-BC) |
NDX (AES-XTS) |
IPv4 |
IPv6 |
License |
| Python |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| C |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| C (libsodium) |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Rust |
Bindings |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Rust |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| JavaScript |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Go |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Java |
Native |
✓ |
- |
✓ |
✓ |
✓ |
✓ |
ISC |
| Lua |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Swift |
Native |
✓ |
- |
✓ |
✓ |
✓ |
✓ |
ISC |
| Elixir |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Ruby |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Kotlin |
Native |
✓ |
- |
✓ |
✓ |
✓ |
✓ |
ISC |
| AWK |
Native |
✓ |
- |
✓ |
✓ |
✓ |
✓ |
ISC |
| Dart |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| Zig |
Native |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |
| PHP |
Native |
✓ |
- |
✓ |
✓ |
✓ |
✓ |
ISC |
| D |
Bindings |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
ISC |