codas 0.5.0

Compact and streamable data format that works anywhere--from web apps to robots.
Documentation
[package]
name = "codas"
description = "Compact and streamable data format that works anywhere--from web apps to robots."
categories = [
    "data-structures",
    "embedded",
    "encoding",
    "network-programming", 
    "no-std",
]
keywords = [
    "codas", 
    "encoding", 
    "protocol", 
    "serialization",
]
readme = "README.md"
version.workspace = true
edition.workspace = true
homepage.workspace = true
repository.workspace = true
license.workspace = true
authors.workspace = true

[package.metadata.release]
release = true

[package.metadata.docs.rs]
# Generate documentation with all features enabled
all-features = true

[features]
# Enable language-specific code generation
langs = ["dep:indoc"]
langs-open-api = ["langs"]
langs-typescript = ["langs"]
langs-python = ["langs"]
langs-rust = ["langs"]

# Enable runtime markdown parsing
parse = ["dep:logos"]

# Enable runtime serde compatibility.
serde = ["dep:serde"]

# Enable integration with `std` traits
std = []

[dependencies]
snafu.workspace = true
serde = { workspace = true, optional = true }

# Text tokenization
logos = { version = "0.13.0", optional = true, default-features = false, features = ["export_derive"] }

# String indentation tools for python codegen
indoc = { version = "2.0.5", optional = true }

# Cryptographic hashing
blake3 = { version = "1.3.3" }

# Cryptographic signing
ed25519-dalek = { version = "2.1.1", features = ["rand_core"]}

# Cryptographic symmetric encryption.
chacha20poly1305 = { version = "0.10.1", default-features = false, features = ["rand_core", "alloc"] }
argon2 = { version = "0.5.3", default-features = false, features = ["alloc"] }

# Random number generation.
rand_core = { version = "0.6.4", features = ["getrandom"] }

[dev-dependencies]
codas = { path = ".", features = ["std", "parse", "langs", "serde"] }
codas-macros = { path = "../codas-macros" }
pretty_assertions.workspace = true

# Depend on snafu, with additional features enabled
# to generate backtraces: https://github.com/shepmaster/snafu/issues/332#issuecomment-1124456063.
snafu = { workspace = true, features = ["backtrace", "backtraces-impl-backtrace-crate"] }

criterion.workspace = true

# Proto3 benchmarks.
prost = "0.13.4"

[[bench]]
name = "codecs"
harness = false