CATEGORY
Cryptography 6,603 crates
Data as of 2026-07-25 (crates.io database dump, timestamp 2026-07-25T02:00:36Z). Source: crates.io · db-dump.tar.gz · methodology & corrections.
pakery-spake2SPAKE2 balanced PAKE protocol (RFC 9382)335MIT OR Apache-2.0
oxidite-securitySecurity utilities for Oxidite (CSRF, XSS protection, encryption)334MIT
proton-sdkCore Proton account/session/crypto primitives for the Rust Proton SDK334MIT
runar-lang-macrosProc-macro attributes for Rúnar smart contract development333MIT
shadow-messagingEnd-to-end encrypted messaging with secure channels and offline queues for Shadow Network333MIT
kx-fides-coreCore cryptographic and manifest library for the KX-Fides authentication framework.332MIT
hashiverse-libCore protocol library for Hashiverse — your open-source decentralized X/Twitter replacement.332MIT OR Apache-2.0
tafrah-hqcHQC (FIPS 207) scaffolding for the Tafrah PQC library332MIT
cnfy-secp256k1Zero-dependency secp256k1 elliptic curve library for Bitcoin applications — unaudited, research/educational use only330non-standard
wallet-fingerprintA library for detecting wallet fingerprints in Bitcoin transactions329MIT
lib-q-keccak-digestlib-Q: pre-FIPS Keccak-224/256/384/512 and Keccak256Full (200-byte) digests; not FIPS 202 SHA-3329Apache-2.0
constellation-metagraph-sdkRust SDK for signing data and currency transactions on Constellation Network metagraphs built with metakit328Apache-2.0
tidepool-corePure primitives for Tidepool: keccak merkle math, LeafSchemaV1 hashing, compressed-NFT proof computation. Zero Solana or I/O…328MIT
crypto_bastionHardened post-quantum MLSigcrypt signcryption crate327MIT OR Apache-2.0
atlas-poseidonAtlas Poseidon hashing327Apache-2.0
algochatRust implementation of the AlgoChat protocol for encrypted messaging on Algorand327MIT
asport-hyphae-handshakeNoise protocol framework handshakes for QUIC326MIT OR Apache-2.0
hekate-gadgetsBase AIR gadgets for the Hekate ZK proving system.326Apache-2.0
uselesskey-rustlsrustls-pki-types and rustls config adapters for uselesskey X.509/key fixtures.325MIT OR Apache-2.0
ledger-sdk-eth-appLedger Ethereum app interaction helpers with EIP-712 support324Apache-2.0
lattice-kyberPure Rust implementation of ML-KEM (FIPS 203) / CRYSTALS-Kyber post-quantum key encapsulation mechanism324MIT
ppvssAn implmentation of Pre-constructed Publicly Verifiable Secret Sharing323Apache-2.0
nucleus-substrate-cliCommand-line client for the Nucleus substrate. Single binary `nucleus-substrate` driving offline receipt verification (signature…323MIT OR Apache-2.0
tafrah-falconFalcon (FIPS 206) scaffolding for the Tafrah PQC library322MIT
neco-sha2zero dependency SHA-256, HMAC-SHA256, and HKDF-SHA256321MIT
cybersoulA decentralized profile CLI tool for managing Soul Bound Token profiles based on ERC-7866320Apache-2.0
audit-trailStructured audit logging with tamper-evident chaining. Every write produces a cryptographically linked record (hash chain).…319Apache-2.0 OR MIT
zerodds-security-pkiPKI/X.509 backend for the DDS-Security 1.1 §8.3 AuthenticationPlugin: identity validation + handshake state machine + OCSP/CRL +…319Apache-2.0
ubl-sirpUBL SIRP: HTTP capsule+receipt, HMAC, idempotency, server for Universal Business Ledger.318MIT OR Apache-2.0
kobe-ethEthereum wallet for Kobe317MIT OR Apache-2.0
anubis-wormholeA post-quantum secure file transfer tool based on the Magic Wormhole protocol.317MIT
glovesseamless secret manager and handoff317MIT
sigil-protocolSIGIL — Sovereign Identity-Gated Interaction Layer. An open protocol for securing AI agent-to-tool interactions.316EUPL-1.2
schema-registry-securitySecurity, authentication, authorization, and SOC 2 compliance for LLM Schema Registry316Apache-2.0
pkix-lint-cabfReference CA/Browser Forum lint bundles for pkix-lint (TLS BR, S/MIME BR) — not authoritative316Apache-2.0 OR MIT
pkix-profiles-cabfReference implementation of CA/Browser Forum certificate profile requirements (TLS BR, S/MIME BR, Code Signing BR) — not…316Apache-2.0 OR MIT
crypt-sha512no_std SHA512-crypt ($6$) password hashing, ported from Ulrich Drepper's reference implementation. Pluggable crypto backend…315BSD-2-Clause
vvva_cryptoPost-quantum cryptography (ML-KEM-768, ML-DSA-65), hybrid TLS, and Node.js-compatible crypto for the 3va runtime314MIT OR Apache-2.0
idprova-coreCore library for IDProva — AI agent identity, delegation, and audit314Apache-2.0
rustls-liteExperimental unsafe non-affiliated rustls lite fork. Don't use please.314Apache-2.0 OR ISC OR MIT
zerodds-security-cryptoAES-GCM / HMAC `CryptographicPlugin` for DDS-Security 1.1 §8.5: AES-128-GCM + AES-256-GCM + HMAC-SHA256 + receiver-specific MACs…314Apache-2.0
quilibrium-verkleVerkle trie implementation with KZG commitments for Quilibrium313MIT
paraxiom-pqcParaxiom post-quantum cryptography — pure Rust, zero C. Unified API for ML-KEM, ML-DSA, SLH-DSA, and Falcon.313MIT OR Apache-2.0
crypto-keystore-rsMulti-chain keystore library supporting Ethereum and Solana with Web3 Secret Storage format312Apache-2.0
svg_captchaHigh performance SVG captcha generator / 高性能 SVG 验证码生成器311MulanPSL-2.0
hekate-verifierAnalytical verifier for the Hekate ZK proving system: Fiat-Shamir replay, Sumcheck, Brakedown LDT, LogUp bus matching.311Apache-2.0
webycash-sdkWebcash cross-platform SDK — FFI bridge for Rust, Swift, Kotlin, Java, C#, Python, TypeScript, Go, C/C++310MIT
moshpit-keygenPerform various key tasks for moshpit308MIT OR Apache-2.0
wafrift-genome-registryWire format, ed25519 signing, and trust-list management for community-contributed wafrift evasion genomes.308MIT OR Apache-2.0
tsafe-cliLocal-first secrets runtime for developers — inject credentials via exec, never shell history or .env files307AGPL-3.0-or-later
mlkem-tlsX25519MLKEM768 / X25519MLKEM1024 hybrid post-quantum kem per draft-ietf-tls-ecdhe-mlkem, in pure rust307MIT OR Apache-2.0
ptrs-gesher-corePluggable Transport traits and helpers (core of the ptrs-gesher framework)306MIT OR Apache-2.0
genshi-mathBN254 field, curve, and pairing abstraction with swappable native (arkworks) and BPF (Solana syscalls + hand-rolled Fr) backends306MIT OR Apache-2.0
ai3-libAI3 support library for PoT-O validator and miner components306GPL-3.0
shipper-encryptState file encryption for shipper using AES-256-GCM306MIT OR Apache-2.0
lib-q-ml-dsaNIST FIPS 204 Module-Lattice Digital Signature Algorithm (ML-DSA) implementation305Apache-2.0
quipuCodec criptográfico post-cuántico híbrido con endurecimiento online verificable (VOPRF) y canal visual de glifos.304AGPL-3.0-or-later
noxtls-cryptoInternal implementation crate for noxtls: hash, symmetric cipher, public-key, and DRBG primitives.304GPL-2.0-only OR LicenseRef-Argenox-Commercial-License
hekate-prover-sysOpen-source shim that links the closed-source Hekate prover cdylib over a stable C ABI.304Apache-2.0
dd-shared-typesUnified shared types and interfaces for decentralized decision making ecosystem303MIT
cmn-substrateThe shared Rust library for CMN — data models, cryptographic verification, tree hashing, URI parsing, and JSON-schema validation…303MIT
dreamwell-meshE2E encrypted mesh networking for Dreamwell303Apache-2.0
moloch-holocryptHoloCrypt integration for Moloch audit chain - encrypted events, ZK proofs, threshold access303MIT
tibet-cortex-coretibet-cortex-core: TBZ envelopes, TIBET tokens, and crypto primitives302MIT OR Apache-2.0
boundary-compilerRFC 8785 JSON Canonicalization (JCS) with boundary profiles and duplicate-key rejection302Apache-2.0
ppoppo-tokenJWT (RFC 9068, EdDSA) issuance + verification engine for the Ppoppo ecosystem. Single deep module with a small interface (issue,…302MIT
maat_airCPU constraint system (AIR) for the Maat programming language301MIT OR Apache-2.0
keyperTUI password manager301AGPL-3.0-only
trust-tasks-tspToIP Trust Spanning Protocol (TSP) transport binding for the Trust Tasks framework, built on affinidi-tsp. Provides pack/unpack…300Apache-2.0
axiom-cliTruthLinked command-line interface for accounts, cells, validators, governance, MCP, and SDK workflows.299MIT
ecash-coreRSA-3072 blind signature protocol for anonymous digital cash298MIT
pqc-binary-formatStandardized binary format for post-quantum cryptography encrypted data interchange298MIT OR Apache-2.0
ensealSecure, ephemeral secret sharing for developers298MIT
tsumiki-pkix-typesPKIX types (AlgorithmIdentifier, Name, etc.) for X.509 certificates297MIT
vukeResearch tool for studying vulnerable Bitcoin key generation practices296MIT
synapse-mtlsMutual TLS utilities for Synapse services296Apache-2.0
lib-q-fn-dsa-signPost-quantum cryptography library296Apache-2.0
wscWebAssembly Signature Component - WASM signing and verification toolkit296MIT
pqc-comboPure Rust ML-KEM-1024 + ML-DSA-65 + AES-256-GCM for no_std295MIT
krpano-decryptDecrypt encrypted krpano tour XML and obfuscated viewer JavaScript295GPL-3.0-only
pqfileQuantum-resistant file encryption: ML-KEM (512/768/1024), hybrid X25519+ML-KEM-768, ML-DSA-65 and SLH-DSA signing,…294MIT
lmrc-vaultHashiCorp Vault management library for the LMRC Stack - comprehensive library for managing Vault installations and secrets on…294MIT OR Apache-2.0
tholos-pqPure post-quantum multi-recipient encryption: Kyber-1024 + Dilithium-3 + XChaCha20-Poly1305 with a stable, versioned wire format293Apache-2.0
tbz-coreAlias for tibet-zip-core — Block-level authenticated compression with TIBET provenance293MIT OR Apache-2.0
bliss-coreCore token economics and types for Bliss cryptocurrency292MIT OR Apache-2.0
lib-q-fn-dsa-kgenPost-quantum cryptography library292Apache-2.0
pqrascv-corePost-Quantum Remote Attestation & Supply-Chain Verification (PQ-RASCV) prover core — no_std + alloc292MIT OR Apache-2.0
quantum-shieldHybrid post-quantum cryptography: X25519 + ML-KEM-1024 encryption and Ed25519 + ML-DSA-87 signatures292MIT
r14-poseidonPoseidon hash for Root14 ZK circuits291Apache-2.0
nano-rspowHybrid CPU/GPU Nano (XNO) Proof of Work library — Rust core, cross-platform.291MIT
pent_housePent-House resonance ledger engine built atop power_house cognition primitives.289non-standard
assay-vaultVault module for assay-engine: KV v2, transit, dynamic credentials, Bitwarden-aligned vaults + collections + items + folders,…289Apache-2.0
tofa-coreCore library for tofa — encrypted TOTP vault288MIT
dusk-curvesBackend-agnostic elliptic curve primitives288MPL-2.0
basil-coseStrict deterministic COSE (RFC 9052/9053) profile for basil sealed invocations: signed, sealed, and seal-only constructions with…287Apache-2.0
siwxSign In with X287MIT OR Apache-2.0
chacha20poly1305-nostdPure-Rust ChaCha20-Poly1305 AEAD implementation for no_std/bare-metal targets (avoids LLVM SIMD issues)286Apache-2.0
kvendraDeveloper harness CLI for Kvendra — capability broker via MCP with zero-knowledge local vault.286Apache-2.0
dlog-groupUnified wrapper around different prime-order cryptographic groups where the discrete log, computational Diffie–Hellman, and…286MIT OR Apache-2.0
lib-q-hashPost-quantum Hash Functions for lib-Q286Apache-2.0
lib-q-poseidonPoseidon hash function optimized for zero-knowledge proofs285Apache-2.0
jacs-cliJACS CLI: command-line interface for JSON AI Communication Standard285Apache-2.0
fatoora-coreRust Fatoora/ZATCA SDK with C ABI and multi-language bindings284MIT
best-encryptA top-level secrets orchestrator. Not just another .env tool — this one encrypts, locks, and sets you up for secure local and…284MIT
lockrail-vaultEncrypted local vault and agent-key storage for Lockrail284PolyForm-Noncommercial-1.0.0
sbo3l-keeperhub-adapterSBO3L adapter for KeeperHub workflow execution: signed PolicyReceipt + IP-1 sbo3l_* envelope, GuardedExecutor trait, mock + live…284MIT
reverse_resonance_idSelf-checking symmetric tokens based on reversing squared user identifiers.283MIT OR Apache-2.0
shamir-3-passShamir 3-pass protocol (commutative encryption)281Apache-2.0
synta-toolsCommand-line tools for inspecting and manipulating ASN.1 DER and PEM files281MIT OR Apache-2.0
truthlinked-coreCore protocol primitives for the TruthLinked post-quantum blockchain.281MIT
qs-verifyStandalone verification for Quantum-Sign signatures281MIT OR Apache-2.0
doxa-protectedZeroize-on-drop string type with [REDACTED] Debug/Display/Serialize and OpenAPI schema. Framework-neutral, zero internal…280Apache-2.0
pkix-aiaAuthority Information Access (AIA) fetcher trait and types for pkix-chain (RFC 5280 §4.2.2.1)280Apache-2.0 OR MIT
matrix-lite-rsProduction-ready Matrix protocol implementation with Redis backend, E2EE (Olm/Megolm), and WASM support for scalable real-time…279MIT OR Apache-2.0
fynx-protoProduction-ready SSH and IPSec/IKEv2 protocol implementations with comprehensive testing and high-level APIs279MIT OR Apache-2.0
zks_wireNetwork primitives for ZK Protocol - NAT traversal, STUN, and swarm networking279AGPL-3.0-only
vks_clientClient implementation of the Verifying Keyserver (VKS) interface279LGPL-2.1-or-later
rsrp-policy-dslCompiled policy DSL for deterministic access-control and proof-oriented rule execution279EUPL-1.2
rsrp-security-coreSecurity primitives for deterministic proof systems (hashing, signatures, Merkle helpers)278EUPL-1.2
zerodds-security-permissionsDDS-Security 1.1 permissions/governance XML parser + access-control plugin (S/MIME-CMS signature via rustls-webpki, topic…278Apache-2.0
totalreclaw-coreTotalReclaw core — E2EE crypto, reranker, wallet, UserOp, store/search pipelines. Single source of truth for all clients.278MIT
base64-ng-sanitizationOptional sanitization integration helpers for base64-ng277MIT OR Apache-2.0
signedby-sdkSIGNEDBYME SDK - Human-Controlled Identity for Autonomous Agents277LicenseRef-SSAL-1.0
uselesskey-core-rustls-pkirustls-pki-types adapters for uselesskey fixture crates.277MIT OR Apache-2.0
pq-modern-rust-tlsPQ-first, hardware-accelerated, TLS 1.3-only rustls provider: X25519MLKEM768 + AES-256-GCM, nothing else.277Apache-2.0
bitcoin-crypto-toolkitA CLI tool and Rust library for Bitcoin cryptography operations including SHA256, RIPEMD160, HASH160, secp256k1 key generation,…276MIT
palisade-errorsSecurity-conscious error handling with operational security principles276Apache-2.0
mailrs-dkimRFC 6376 DKIM signature verifier + signer. Parses DKIM-Signature headers, applies simple/relaxed canonicalization, verifies…276Apache-2.0 OR MIT
lib-q-fn-dsa-vrfyPost-quantum cryptography library275Apache-2.0
qs-tspRFC 3161 timestamping for Quantum-Sign (placeholder)274MIT OR Apache-2.0
qs-policyPolicy engine for Quantum-Sign - The Digital Notary Stamp That Even Quantum Computers Can't Forge274MIT OR Apache-2.0
proton-drive-rsHigh-level Proton Drive client for Rust274MIT
tumpa-cliOpenPGP operations and SSH agent backed by tumpa keystore.273GPL-3.0-or-later
pwkitA secure CLI password generator with template support for environment files273MIT
hyper-exchangeHyperliquid L1 exchange client — EIP-712 signing, REST API, WebSocket273MIT
ash-coreDEPRECATED — Use `ashcore` instead. This crate is End of Life (EOL).272Apache-2.0
voided-coreCore cryptographic primitives for the Voided encryption library272MIT
sanitization-crypto-interopCrypto crate interop helpers for the sanitization crate.272MIT OR Apache-2.0
hap-cryptoHomeKit Accessory Protocol pairing crypto: Pair Setup (SRP-6a) and Pair Verify (X25519/Ed25519); HAP-BLE broadcast key derivation…269Apache-2.0
pkix-identityCert-side identity matching (RFC 6125 hostname, RFC 5280 §4.2.1.6 + RFC 8398 mailbox, IP literal)269Apache-2.0 OR MIT
monerochan-cliThe CLI is used for various tasks related to MONEROCHAN, such as building the toolchain, compiling programs, and tracing programs.268MIT OR Apache-2.0
spn-keyringOS keychain wrapper for SuperNovae CLI268MIT OR Apache-2.0
qs-transparencyTransparency log support for Quantum-Sign (placeholder)268MIT OR Apache-2.0
kiss_chatA keep-it-simple peer-to-peer chat with quantum-resistant end-to-end encryption.268GPL-3.0-or-later
ubl-idUniversal Business Ledger identity primitives: DIDs (did:ubl:*), CIDs (cid:blake3:*), Wallets, and PoP headers. RFC-0001…266MIT OR Apache-2.0
signet-cliCLI tool for Signet cryptographic action receipts266Apache-2.0 OR MIT
dchain-sdk-protoProtobuf stuct defintions for Dchain266Apache-2.0
lib-q-plonky-uni-starkUnivariate STARK prover and verifier for lib-Q266Apache-2.0
punkgo-jackAI tool hook adapter for punkgo-kernel — every tool call gets a cryptographic receipt with Ed25519 signing and RFC 3161 TSA…266MIT
noxtls-pemInternal implementation crate for noxtls: PEM encoding and decoding utilities.265GPL-2.0-only OR LicenseRef-Argenox-Commercial-License
bsv-spvBSV Blockchain SDK - SPV verification, Merkle paths, BEEF format264MIT
redoubt-aead-aegis-armaarch64 assembly AEGIS-128L AEAD implementation264GPL-3.0-only
openvet-treeContent-addressed Merkle search tree (dense skip-tree) for OpenVet.264MIT OR Apache-2.0
origin-crypto-sdkStandalone cryptographic SDK with classical (Ed25519) and post-quantum (Falcon, SLH-DSA, ML-DSA, NTRU Prime, Curve41417)…264Apache-2.0
xrpl-macrosInternal proc macro for xrpl-wasm-stdlib - use xrpl-wasm-stdlib instead263ISC
tensor_chainTensor-native blockchain with semantic conflict detection and auto-merge263MIT OR Apache-2.0
hekate-keccakKeccak-f[1600] AIR chiplet with SHA-3 and SHAKE sponges for the Hekate ZK proving system.263Apache-2.0
aws-mpl-legacyaws-mpl-rs is a low level library for implementing client side encryption.263ISC AND (Apache-2.0 OR ISC)
phasm-corePure-Rust steganography engine — hide encrypted messages in JPEG photos262GPL-3.0-only
dreamwell-qttpsQuantum Transit Transfer Protocol — FQTP transport layer with Blaed's Algorithm gate lifecycle, Ed25519 handshake, per-chunk…262Apache-2.0
plonkish-catPLONKish circuit system built on comp-cat-rs: circuits as morphisms in a free category262MIT
ark-circom-solanaArkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust. Fork with ark-ff 0.4 compatibility for…261MIT OR Apache-2.0
openentropy-cliCLI for openentropy — your computer is a hardware noise observatory261MIT
hxrts-aura-relationalRelationalContext implementation for cross-authority coordination in Aura260Apache-2.0
moloch-chainChain operations for Moloch audit chain260MIT
qatsiStateless secret generation via hierarchical memory-hard key derivation using Argon2id260GPL-3.0-or-later
cortex-coreTIBET Cortex core types: TBZ envelopes, TIBET tokens, and crypto primitives259MIT OR Apache-2.0
zero-secretsZeroizing secret wrappers (SecretString / SecretBytes / SecretArray) backed by RustCrypto zeroize.258MIT
encipherA fast session-data cipher for Rust258Apache-2.0
sanitization-deriveOptional derive macros for the sanitization crate.258MIT OR Apache-2.0
dreamwell-analyticsDQL (Dream Query Language) engine — cold-path analytics, proof verification, and federated query for Dreamwell.257Apache-2.0
oxiquic-cryptoOxiQUIC crypto bridge: Pure-Rust rustls CryptoProvider over OxiCrypto with QUIC packet/header protection (RFC 9001), zero…257Apache-2.0
asport-quinn-hyphaeNoise protocol framework handshakes for the Quinn QUIC library256MIT OR Apache-2.0
bsv58Ultra-fast Base58 codec for Bitcoin SV (SIMD x86/ARM)256non-standard
fast-sparse-merkle-treeFast Sparse Merkle Tree (SMT) library in Rust, using TurboSHAKE128 as default hash function255MIT
cynapseReal-time, memory-resident binary integrity verification for Rust applications254MIT OR Apache-2.0
base64-ng-subtleOptional subtle::ConstantTimeEq helpers for base64-ng buffers253MIT OR Apache-2.0
hpke-cryptoRFC 9180 Hybrid Public Key Encryption (HPKE) implementation in Rust.253MPL-2.0
scp2p-coreCore protocol library for the SCP2P peer-to-peer content-sharing network253MPL-2.0
shamir-zeroFast zero-copy Shamir's Secret Sharing in Rust - derived from IBM / HashiCorp Vault's original Go implementation (MPL-2.0)253MIT OR Apache-2.0
photon-messengerDecentralized messenger with rolling-chain encryption252MIT OR Apache-2.0
tvcCLI for Turnkey Verifiable Cloud252Apache-2.0
bsv-walletBSV Blockchain SDK - Wallet interface and key derivation252MIT
nklave-storagePersistence layer for Nklave: append-only decision logs, checkpoints, and EIP-3076 interchange252MIT
pdfluent-signPDF digital signature validation — PAdES, CMS, certificate chain, DocMDP/FieldMDP, LTV.252non-standard
ptrs-gesher-obfs4obfs4 pluggable transport implementation (ptrs-gesher framework)251MIT OR Apache-2.0
solana-tools-liteA lightweight, SDK-free, offline-first signing toolkit for Solana keys, messages, and transactions.251MIT
cypheraData protection SDK — format-preserving encryption (FF1/FF3), AES-GCM, data masking, and hashing. Zero-copy passthrough…251Apache-2.0
lib-q-saturninSaturnin post-quantum symmetric algorithm suite for lib-Q251Apache-2.0
lib-q-lattice-zkpModule-lattice commitments, sigma protocols, and BLNS-style credential amortisation251Apache-2.0
rsrp-pqcryptoHybrid post-quantum cryptographic primitives for deterministic proof systems250EUPL-1.2
x0x-symphony-signingx0xd signing and verification infrastructure for x0x-symphony.249AGPL-3.0-or-later
pflow-zkZK proof traits and incidence matrix extraction for Petri nets249MIT
solid-pod-rs-didkeydid:key (Ed25519 / P-256 / secp256k1) self-signed JWT verifier for solid-pod-rs249AGPL-3.0-only
why2-chatLightweight, fast and secure chat application powered by WHY2 encryption.249GPL-3.0-only
ejsonManage encrypted secrets using public key encryption249MIT
secret-boxSafe boxing mechanism for sensitive values with automatic zeroization248Apache-2.0
cardanowall-cliThe cardanowall CLI: a standalone Label 309 Proof-of-Existence verifier and toolkit.248Apache-2.0
cadenServer-side WebAuthn/Passkey library implementing the W3C WebAuthn Level 2 specification248MIT OR Apache-2.0
taproot-assets-coreCore no-std logic and verification primitives for Taproot Assets247MIT OR Apache-2.0