@uncharted-ai/donut-runtime
v1.0.2
Published
🍩 Donut Corp Runtime — native PC inference engine, no C++ compilation needed
Downloads
489
Maintainers
Readme
🍩 Donut Runtime
Runtime próprio do Donut Corp — inferência local em pure JavaScript, sem compilar C++, usando todo o poder do seu PC.
Como funciona
Ao contrário do Ollama (que usa llama.cpp compilado), o Donut Runtime:
- Lê GGUF direto — parser binário próprio em Node.js
- Roda inferência em JS puro — V8 auto-vectoriza com AVX2/NEON automaticamente
- Zero compilação —
npm installe pronto, funciona em qualquer PC - Detecta hardware — usa todos os cores da CPU, detecta GPU automaticamente
Arquitetura
donut-runtime/
├── src/
│ ├── gguf/reader.js ← Parser GGUF binário (sem dependências)
│ ├── engine/
│ │ ├── ops.js ← matmul, attention, rmsNorm, RoPE (SIMD via V8)
│ │ ├── transformer.js ← Forward pass LLaMA/Mistral/Phi/Gemma
│ │ ├── hardware.js ← Auto-detect CPU/GPU/RAM
│ │ └── index.js ← DonutEngine (interface principal)
│ ├── tokenizer/index.js ← BPE tokenizer (lê vocab do GGUF)
│ ├── models/ ← Registry + download manager
│ ├── server/ ← API OpenAI-compatible
│ └── cli/ ← CLI `donut`Install
npm install -g @uncharted-ai/donut-runtimeSem compilação. Funciona direto.
Uso
# Ver hardware detectado
donut hw
# Baixar modelo
donut pull tinyllama
# Chat
donut run tinyllama
# Ou apontar direto para um .gguf
donut run ~/models/meu-modelo.gguf
# API server (OpenAI-compatible)
donut serveComo usar como biblioteca
import { DonutEngine } from '@uncharted-ai/donut-runtime';
const engine = new DonutEngine();
await engine.load('./modelo.gguf', { ctx: 2048 });
// Streaming
for await (const token of engine.chat([
{ role: 'user', content: 'Olá!' }
])) {
process.stdout.write(token);
}Performance
O V8 (engine do Node.js) auto-vectoriza operações em Float32Array:
- x86_64: usa SSE4.1 / AVX2 automaticamente
- ARM64 (Apple Silicon, etc.): usa NEON automaticamente
- Threads: usa todos os cores menos um (configurável)
Para máxima performance em modelos grandes, use GPU via donut serve com --gpu-layers.
Modelos suportados
Qualquer modelo em formato GGUF: LLaMA 2/3, Mistral, Phi-3, Gemma 2, Qwen 2.5, TinyLlama e outros.
ATENÇÃO!
Donut runtime NÃO tem um repositorio no GitHub
License
MIT © Donut Corp / Uncharted AI
