The Most Modern Localization Framework

The fastest and most memory efficient localization SDK. Build for developers to parse all major file formats with full backend features included. A fresh XML-free loss-less interchange format with an LSP.

Format coverage

Start with the file you have.

Each format guide covers the APIs that genuinely exist for that format—materialized, streaming, async, writing, and regeneration—without pretending every format has the same operational surface.

One predictable workflow

Format-specific at the edges. Consistent in the middle.

01

Parse or stream

Choose a format-specific parser and the consumption model your workload needs.

lokit.parse · lokit.stream
02

Work in one model

Inspect, transform, match, split, or store the same Data units regardless of origin.

BaseStructure · Data
03

Write or regenerate

Create a canonical output or preserve the original package and vendor envelope.

document.export · document.regen

Shared structure

Your application code stays format-agnostic.

The public model keeps source text, selected and multilingual targets, status, plurals, inline content, context, comments, metadata, and extensions explicit.

Understand the data model
model.py
from lokit.types import BaseStructure, Data, TargetData
document = BaseStructure(    source_locale="en-US",    target_locale="fr-FR",    data={        "checkout.submit": Data(            source="Place order",            target="Passer la commande",            targets={                "fr-FR": TargetData(                    text="Passer la commande",                ),            },            extensions={"component": "checkout_button"},        ),    },)

Typed target shapes

Single-target and multilingual documents are documented as distinct shapes.

Stable downstream code

Matching and database APIs consume the same model the parsers produce.

Built for backend work

More than another file converter.

Choose the right API

Strictly typed end to end

A py.typed package and one explicit model for units, targets, plurals, context, metadata, and inline content.

Materialized or bounded

Choose random-access documents, one-shot streams, parallel TMX, or async iterators without changing the unit shape.

Write new or regenerate

Create canonical output, or update translations inside an original envelope when vendor-specific content must survive.

Translation memory included

Load the same model into PostgreSQL with COPY staging and run exact, contextual, tag-aware, or trigram matching.

Language tooling

A ready-to-install language server for .lokit.

Install lokit-lsp from GitHub today for diagnostics, completion, hover, symbols, folding, and canonical formatting. Published editor extensions are coming soon.

Terminal
git clone https://github.com/ciarandarby/lokit.gitcd lokitcargo install --locked --path tools/lokit-lsp

Editor extensions

Native installation flows for the three editors are in progress. The language server remains editor-independent and ready to use now.

Zed

Extension coming soon

VS Code

Extension coming soon

Cursor

Extension coming soon

Performance

Fast is useful. Context makes it credible.

The current display separates workload, median time, throughput, and peak cold RSS. Values are intentionally unchanged while the benchmark suite is being rerun.

Read benchmark notes

TMX materialized catalog

50,000 units · 10.75 MB corpus

Median  /  Units per second  /  Cold RSS
FrameworkRuntimeMedian timeUnits / secondPeak cold RSS
Lokit
Rust / Python0.240s208,14380.4 MiB
Okapi Framework
Java0.263s189,437269.2 MiB
translate-toolkit
Python0.652s76,586135.7 MiB

Comparisons only become meaningful when semantic output, measurement scope, corpus, and runtime environment are stated together. See the benchmark page for the reporting checklist.

Available in RC Beta

Convert your first localization file in a few lines.

Lokit is pre-1.0 and moving quickly. Pin version 0.5.0, test the APIs your integration uses, and start with the format-specific guide for your source file.