Aller au contenu principal
Projet Open Source de sepTN

Données de Kanji Hors Ligne. Sans Dépendances.

Une base de données rapide et compacte de plus de 13 000 caractères kanji et du vocabulaire associé. Optimisée avec des fragments en chargement paresseux pour les environnements serverless à mémoire limitée.

Commande d'installation

npm install kanji-data

Le Problème

Accéder à un dictionnaire japonais hors ligne complet signifie souvent parser un énorme JSON de plus de 100 Mo.

  • Bloque l'event loop Node.js et ralentit le démarrage.
  • Peut consommer plus de 300 Mo de RAM et faire planter le serverless (Vercel, AWS Lambda).
  • SQLite introduit des dépendances C++ (node-gyp) qui échouent souvent à l'installation.

La Solution

kanji-data résout la mémoire par fragmentation au build et évaluation paresseuse.

  • Au lieu d'un fichier unique énorme, la base est précompilée en petits morceaux optimisés.
  • Les métadonnées de base se chargent instantanément.
  • Le vocabulaire est découpé par préfixes hex Unicode et chargé par morceaux de ~1 Mo uniquement à la demande.

Fonctionnalités Clés

Sans Dépendances

JavaScript et JSON purs. Pas de base de données, pas de binaires natifs.

Prêt pour le Serverless

Démarrages à froid quasi instantanés avec une empreinte minime.

100% Hors Ligne

Pas de clé API, pas de quota, pas de latence réseau.

Cache Intelligent

Les fragments restent en mémoire après la première lecture.

API Simple

Clairement structurée et prête en millisecondes.

Exemple d'utilisation
const kanji = require('kanji-data');

// 1. Get core metadata instantly
const neko = kanji.get('猫');
console.log(neko.meanings);    // ['cat']
console.log(neko.kun_readings); // ['ねこ']
console.log(neko.jlpt);        // 3

// 2. Fetch vocabulary (lazily loads a ~1MB shard)
const nekoWords = kanji.getWords('猫');
console.log(nekoWords[0]);

// 3. Get entire JLPT lists
const n5 = kanji.getJlpt(5);

// 4. Get kanji by school grade
const grade1 = kanji.getGrade(1);

Explorateur Interactif

Inspectez la forme de la sortie dans le navigateur. Cette démo utilise un petit échantillon.

Cette démo web prend en charge 水, 火, 猫, 食 et 電. Le paquet npm prend en charge plus de 13 000 caractères hors ligne.

Référence Officielle de l'API

get(character: string): Object | null

Renvoie les métadonnées de base d'un kanji. Très rapide car ces données se chargent à l'init. Renvoie null si le caractère est introuvable.

getWords(character: string): Array

Renvoie le vocabulaire utilisant ce kanji. Le premier appel lit un fragment d'environ 1 Mo puis le met en cache. Renvoie un tableau vide s'il n'y a pas de données.

getJlpt(level: number): Array<string>

Renvoie les kanji des niveaux JLPT 1–5. Les niveaux invalides renvoient un tableau vide.

getGrade(grade: number): Array<string>

Renvoie les kanji d'une année scolaire japonaise. Les années 1–6 sont 教育漢字 ; 8 couvre le reste des Jōyō ; 9 couvre les Jinmeiyō pour les noms.

Licence et Sources de Données

Le code est sous MIT. Données via kanjiapi.dev, avec EDICT et KANJIDIC — © EDRDG, utilisés selon leur licence. MIT · kanjiapi.dev · EDRDG · licence

Liens Connexes

IDENESPTFR