TypeScript / Node.js bindings (@baseRT/node) over the BaseRT C API via FFI.
Node 18+.
cd bindings/node
npm install
npm run buildPoint at the engine dylib if needed:
export BASERT_LIB_PATH=/path/to/buildimport { BaseRTModel } from "@baseRT/node";
const model = new BaseRTModel("models/your-model.base");
const tokens = model.encode("Hello, world!");
const stats = model.generate(tokens, 128, { temperature: 0.7 }, (id, text) => {
process.stdout.write(text); // streamed token callback
});
console.log(`\n\nGenerated ${stats.generatedTokens} tokens`);generateContinue keeps the KV cache, so a follow-up prompt doesn't reprocess
history:
model.generate(prompt1, 256, { temperature: 0.7 }, (id, t) => process.stdout.write(t));
model.generateContinue(prompt2, 256, { temperature: 0.7 }, (id, t) => process.stdout.write(t));const model = new BaseRTModel("models/your-model.base");
// model config, embeddings, tokenization helpers, and (for Whisper models)
// transcription are exposed on the model instance.See bindings/node
for the full API and the struct-ABI tests.