This repository owns the reallyme-codec Rust crate family and the generated
SDK facades for Swift, Kotlin, and TypeScript.
crates/codec/**contains the Rust implementation that defines codec behavior.crates/ffiexposes the native C ABI and JNI boundary used by Swift and Kotlin.crates/wasmexposes the WASM boundary used by@reallyme/codec.crates/protoowns the publishable protobuf crate, generated bindings, and source schema for the cross-language codec wire contract.packages/ts,packages/swift,packages/kotlin, andpackages/kotlin-androidare thin TypeScript, Swift, Java/Kotlin, and Android facades over the Rust implementation.
The protobuf schema is canonical for cross-language request, response, and error shapes. Rust primitive modules remain canonical for behavior, but SDK wire DTOs and typed boundary errors must be generated from, or mechanically backed by, the protobuf schema rather than maintained as independent parallel models.
reallyme/codec
crates/
codec/
proto/codec/
packages/
ts/
swift/
kotlin/
kotlin-android/
Crypto primitives, provider policy, key generation, signing, encryption, KDFs, and crypto conformance vectors belong in the separate crypto repository.
TypeScript uses the codec WASM package. Swift uses the codec C ABI. Java and Kotlin use the codec JNI provider. Those SDKs may validate arguments and present typed facades, but they must not hand-roll codec logic that would diverge from Rust.
Expected failures are mapped to typed codec errors. Errors must not include raw input bytes, backend exception text, PII, or secret material.