API reference

The crystal family

Three implementations, one contract, one behavior. Choose the language your process runs in; the model ids, artifacts, and outputs are identical. All crystals read SECRYST_INDEX / SECRYST_CACHE.

reference

Python 0.1.1 · live

The reference crystal: it generates the golden sets the others are diffed against and owns numerical adjudication. Pure stdlib plus yaml/requests; inference needs onnxruntime.

install

pip install secryst

usage

from secryst import Model

model = Model.load("khm-latn-1.0")   # resolve -> download -> verify -> cache
model.translate("ភាសា")               # -> "pheasaea"

Low-level surfaces: secryst.encode/decode (the byte tokenizer), verify_and_read(zip) (IMF loading), resolve(id) (index + cache). Errors: ModelFormatError, RegistryError. Source: secryst/secryst-py.

the original

Ruby 1.0.0 · live

Secryst was born Ruby in 2020 — a seq2seq transformer gem. The v1 line runs ByT5-family models in pure Ruby over ONNX (via secryst/onnxruntime), with no libtorch and no native compilation of the model itself.

install

gem 'secryst'

usage

require 'secryst'

translator = Secryst::Translator.new(model_file: 'khm-latn-byt5.zip')
translator.translate('ភាសា')   # => "pheasaea"

Index-based loading (models.yaml resolution with Secryst::IMF) shipped with v1.0.0 (PR #47, merged; golden-parity CI green). Source: secryst/secryst.

the embeddable

TypeScript 0.1.0 · live

Node crystal for the interscript-js ecosystem and any TypeScript runtime. onnxruntime-node is an optional peer — registry and index consumers can use this package with zero native dependencies.

install

npm install secryst onnxruntime-node

usage

import { load } from "secryst";

const model = await load("khm-latn-1.0");
await model.translate("ភាសា");   // "pheasaea"

Mirrors the Python API: loadIndex, resolve, verifyAndRead, encode/decode. Source: secryst/secryst-ts.

Release status

CrystalPackageStatus
Pythonsecryst (PyPI)0.1.1 · live
Rubysecryst (RubyGems)1.0.0 · live
TypeScriptsecryst (npm)0.1.0 · live
Index manifest@secryst/models (npm)pending — awaits first publish (trusted publishing)

Ruby and TypeScript are live; the index manifest package publishes via npm Trusted Publishing when its content is ready. This table is the honest state of the world and will be updated as each ships.