[package]
edition = "2024"
name = "unitoken"
version = "0.1.1"
build = false
exclude = [
".venv/**",
"dist/**",
"out/**",
"target/**",
"fixtures/**",
"!fixtures/default_special_tokens.txt",
"flamegraph*.svg",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Fast BPE tokenizer/trainer with a Rust core and Python bindings"
readme = "README.md"
keywords = [
"tokenizer",
"bpe",
"nlp",
]
categories = ["text-processing"]
license = "MIT"
repository = "https://github.com/a-gradient/unitoken"
[features]
cli = [
"dep:tracing-subscriber",
"dep:indicatif",
"dep:chrono",
"dep:clap",
]
default = []
fmt-npz = ["npyz/npz"]
hotpath = [
"hotpath/hotpath",
"hotpath/hotpath-alloc",
]
plot = [
"dep:textplots",
"dep:rgb",
]
py = [
"dep:pyo3",
"dep:ndarray",
"dep:numpy",
]
[lib]
name = "unitoken"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "unitoken"
path = "src/main.rs"
required-features = ["cli"]
[[bench]]
name = "bpe"
path = "benches/bpe.rs"
harness = false
[dependencies.chrono]
version = "0.4.42"
optional = true
[dependencies.clap]
version = "4.5.53"
features = ["derive"]
optional = true
[dependencies.fancy-regex]
version = "0.16.2"
[dependencies.hotpath]
version = "0.8.0"
[dependencies.indicatif]
version = "0.18.3"
optional = true
[dependencies.lazy_static]
version = "1.5.0"
[dependencies.memchr]
version = "2.7.6"
[dependencies.metrics]
version = "0.24.3"
[dependencies.moka]
version = "0.12.11"
features = ["sync"]
[dependencies.ndarray]
version = "0.17.1"
optional = true
[dependencies.npyz]
version = "0.8.4"
[dependencies.numpy]
version = "0.27.1"
optional = true
[dependencies.ordermap]
version = "1.0.0"
features = ["serde"]
[dependencies.pyo3]
version = "0.27"
features = [
"experimental-inspect",
"abi3-py38",
]
optional = true
[dependencies.rayon]
version = "1.11.0"
[dependencies.rgb]
version = "0.8.52"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.145"
[dependencies.textplots]
version = "0.8.7"
optional = true
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tracing]
version = "0.1.43"
[dependencies.tracing-subscriber]
version = "0.3.22"
optional = true
[dev-dependencies.criterion]
version = "0.5.1"
[dev-dependencies.pyo3-introspection]
version = "0.27"
[profile.dev.package."*"]
opt-level = 2
[profile.release]
debug = "line-tables-only"
[profile.test]
debug = 2
inherits = "release"