[workspace]
members = ["macros", "."]
package.version = "0.1.6"
[package]
name = "lencode"
version.workspace = true
edition = "2024"
license = "MIT"
description = "A crate for encoding and decoding variable-length data using the Lencode varint encoding scheme and deduplication"
keywords = ["encoding", "decoding", "bincode", "varint", "serde"]
authors = ["sam0x17"]
repository = "https://github.com/sam0x17/lencode"
documentation = "https://docs.rs/lencode/latest/lencode/"
[dependencies]
endian-cast = "2"
generic-array = "1"
solana-sdk = { version = "3", optional = true }
agave-geyser-plugin-interface = { version = "3", optional = true }
solana-message = { version = "3", optional = true }
solana-transaction = { version = "3", optional = true }
solana-transaction-status = { version = "3", optional = true }
solana-transaction-context = { version = "3", optional = true }
solana-transaction-error = { version = "3", optional = true }
solana-instruction = { version = "3", optional = true }
solana-hash = { version = "3", optional = true }
solana-signature = { version = "3", optional = true }
solana-pubkey = { version = "3", optional = true }
solana-clock = { version = "3", optional = true }
solana-reward-info = { version = "3", optional = true }
solana-account-decoder-client-types = { version = "3", optional = true }
ruint = { version = "1", default-features = false}
newt-hype = { version = "0", default-features = false }
hashbrown = "0"
zstd-safe = { version = "7", default-features = false }
lencode-macros = { path = "macros", version = "0.1.6" }
bincode = { version = "2", features = ["serde"], optional = true }
[dev-dependencies]
rayon = "1"
rand = ">= 0.9"
criterion = { version = ">= 0.5", features = ["html_reports"] }
borsh = ">= 1.5"
bincode = { version = "2", features = ["serde"] }
[features]
default = []
std = ["ruint/std"]
solana = [
"std",
"dep:solana-sdk",
"dep:agave-geyser-plugin-interface",
"dep:solana-message",
"dep:solana-transaction",
"dep:solana-transaction-status",
"dep:solana-transaction-context",
"dep:solana-transaction-error",
"dep:solana-instruction",
"dep:solana-hash",
"dep:solana-signature",
"dep:solana-pubkey",
"dep:solana-clock",
"dep:solana-reward-info",
"dep:solana-account-decoder-client-types",
]
[profile.test]
opt-level = 3
lto = true
[profile.dev]
opt-level = 3
lto = true
[profile.release]
opt-level = 3
lto = true
[lints.clippy]
missing_const_for_fn = "warn"
[workspace.lints.clippy]
missing_const_for_fn = "warn"
[[bench]]
name = "varint_bench"
harness = false
[[bench]]
name = "roundup"
required-features = ["std"]
harness = false
[[bench]]
name = "solana_bench"
required-features = ["solana"]
harness = false
[[bench]]
name = "bytes_bench"
harness = false
required-features = ["std"]