Token Counter

v0.1.0Ajouté le 26 sept. 2026Données d'exemple

Compte les tokens BPE des encodages compatibles OpenAI (cl100k_base, o200k_base) sans construire la liste des tokens.

Données d'exemple. Ces chiffres sont fictifs et ne proviennent pas de mesures.

cargo install kura-rs
kura add token-counter

Copie 3 fichiers source dans votre projet. Le code vous appartient ensuite.

Si un autre outil installe déjà une commande kura, lance cargo install kura-rs --bin kura-rs et utilise kura-rs add à la place.

use crate::parts::token_counter::{Encoding, count};

let n = count(Encoding::O200kBase, &prompt);
assert!(n <= 128_000, "prompt too long: {n} tokens");

Vérification

Données d'exemple

Vérifié par rapport à tiktoken 0.9.0 (Python). Méthode : Tests différentiels. Les mêmes entrées sont fournies aux deux implémentations, puis leurs sorties sont comparées.

Référence
tiktoken
Python 0.9.0
Cas de test
5 000
Tests différentiels
Réussis
5 000 / 5 000
Tous les cas concordent
Dernière exécution
26 sept. 2026
UTC

Ces valeurs sont fictives. Elles n'ont pas encore été mesurées et ne doivent pas être lues comme des résultats réels. Ce composant est marqué "sample": true dans son fichier de registre.

Benchmarks

Données d'exemple

kura-rs (Rust) comparé à tiktoken sur plusieurs tailles d'entrée. Plus rapide à partir d'environ 1 285 entrées, jusqu'à 1.7× plus rapide.

Ces valeurs sont fictives. Elles n'ont pas encore été mesurées et ne doivent pas être lues comme des résultats réels. Ce composant est marqué "sample": true dans son fichier de registre.

kura-rs (Rust)tiktoken
Temps d'exécution par itération (plus bas = meilleur). La zone grisée indique où l'implémentation de référence est plus rapide.
Afficher le tableau de données
Taille d'entréekura-rs (Rust)tiktokenAccélération
1000,05 ms0,03 ms1.7× plus lent
1 0000,31 ms0,3 ms1.0× plus lent
10 0002,6 ms3,4 ms1.3×
100 00024 ms36 ms1.5×
1 000 000235 ms390 ms1.7×

Fichiers

  • parts/token_counter/mod.rs
  • parts/token_counter/bpe.rs
  • parts/token_counter/ranks.rs

Dépendances (crates)