Skip to content

Releases: lykuroai/engine

v1.0.6 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 15 Aug 13:28

v1.0.6 (2026-08-15)

First-request latency and download integrity

  • Model load 16.9s → 3.0s for Qwen2.5-1.5B on an M4 Pro (43.9s → ~18s on a Linux/CUDA host without SHA-NI): the CPU reference build and its CPU smoke forward are skipped when a GPU backend serves (the backend's own pre-warm is the smoke inference), Metal/CUDA weight conversion + quantization + upload runs on a thread pool, and the in-tree SHA-256 gains hardware compression (ARMv8 SHA2 / x86 SHA-NI with runtime dispatch) for multi-GB artifact digest verification. LYKURO_LOAD_PROF=1 prints the load-phase breakdown.
  • pull verifies downloads against the upstream SHA-256 (Hugging Face's x-linked-etag, the LFS object hash) before conversion. A silently corrupted download previously produced an artifact that generated garbage yet passed every load-time check — the artifact's own checksums are derived from the downloaded bytes. A mismatch now fails the pull loudly.

See docs/RELEASE_NOTES.md for full notes. Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

Downloads (SHA-256)

File Platform / backend SHA-256
lykuro-native-engine-macos-arm64 macOS Apple Silicon, Metal (single binary, ad-hoc signed) 50fa2accdb084a612b876d40d9fbf50c02ef5e92b42c4f9c61e4728299231bac
lykuro-native-engine-macos-metal-1.0.6.tar.gz macOS Apple Silicon, Metal (full package) fcfc2c957fac16f49910154cea82ecdd81d150ee8345b8f9ec0dbd122fd3f127
lykuro-native-engine-linux-cuda-1.0.6.tar.gz Linux x86_64 + NVIDIA CUDA (full package) bbe7c4e0b87e22066ba7a01b9955fbc5874b0df4dadc5eb952cbb5e94132f2b2
lykuro-native-engine-linux-amd64 Linux x86_64, CPU (single binary) fca3834b353f2f65db5fc51e9d5b36d120588fe65d7ddd19492452e545522d1b
lykuro-native-engine-linux-arm64 Linux aarch64, CPU (single binary) f87fbc513093a5b712b9df472f380a2ea4ff5efcc82c9ace976f9968252306d4

Runtime requirements: Linux binaries need glibc + system OpenSSL (CUDA package additionally needs the NVIDIA driver/CUDA runtime); macOS binaries need Apple Silicon (arm64) and are ad-hoc signed — browser downloads need xattr -d com.apple.quarantine once.

v1.0.5 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 15 Aug 12:33

v1.0.5 (2026-08-15)

Model-name consistency across every surface

  • native-engine list, GET /api/tags and GET /v1/models now report the canonical HF repo id (Qwen/Qwen2.5-0.5B-Instruct) instead of the local directory name, so the listed name is byte-identical to what pull and run take. pull records the repo id in a source_repo sidecar; without one it is derived from the directory name (HF owner names cannot contain _), and a name is only displayed if it resolves back to the same artifact. Directory-name input (Qwen_Qwen2.5-0.5B-Instruct) keeps working everywhere.
  • pull (CLI and POST /api/pull) treats an already-local model as a no-op success, Ollama-style — previously feeding a listed name back to pull failed with "invalid repo id", which broke UIs that pull the models they listed.

See docs/RELEASE_NOTES.md for full notes (v1.0.4 carried the GPU decode overhaul: Metal 485 tok/s / CUDA 434 tok/s on Qwen2.5-0.5B, ahead of MLX and Ollama). Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

Downloads (SHA-256)

File Platform / backend SHA-256
lykuro-native-engine-macos-arm64 macOS Apple Silicon, Metal (single binary, ad-hoc signed) 1eb9602e461d243a072480f1fdb9a68a4006a24426b2e84043fd9751cf51cda6
lykuro-native-engine-macos-metal-1.0.5.tar.gz macOS Apple Silicon, Metal (full package) b0c631eac208a71559ee304f1501fd50bc00881e6420c8e6cee3c57a052c5e94
lykuro-native-engine-linux-cuda-1.0.5.tar.gz Linux x86_64 + NVIDIA CUDA (full package) cfe05e651e9a2cf6e4c1f600aac33a7153f2dc8a2e3e9a566701532750a9c343
lykuro-native-engine-linux-amd64 Linux x86_64, CPU (single binary) 57a573076be09b2584f23985d34cea934cdff50867f848e253755fe786692760
lykuro-native-engine-linux-arm64 Linux aarch64, CPU (single binary) 7df46b3df68584458e3601b95bca46480d0a953d4c4d6becdb76c419b035db27

Runtime requirements: Linux binaries need glibc + system OpenSSL (CUDA package additionally needs the NVIDIA driver/CUDA runtime); macOS binaries need Apple Silicon (arm64) and are ad-hoc signed — browser downloads need xattr -d com.apple.quarantine once.

v1.0.4 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 15 Aug 12:03

v1.0.4 (2026-08-15)

GPU decode overhaul — ahead of MLX (Metal) and Ollama (Metal & CUDA)

Metal (Apple Silicon) — greedy generation now runs up to 16 speculative steps per command buffer with on-GPU argmax + embedding gather, one batch always committed ahead of the one being consumed; attention switches to split-row flash decoding (fixed-order merge, deterministic). M4 Pro, 256-token generations, client-side measurement:

Model This engine (metal-q4) MLX 4bit (self-reported) Ollama 0.32.5 q4_K_M
Qwen2.5-0.5B 485 tok/s, TTFT 37 ms 441 tok/s 246 tok/s, 103 ms
Qwen2.5-1.5B 210 tok/s, TTFT 89 ms 214 tok/s 154 tok/s, 101 ms

CUDA (Linux) — vectorized 8-wide weight loads (per-element nibble reads were an 8x DRAM amplification), warp-per-row B=1 GEMV kernels with shared-memory activations, a quantized lm head in the quantized modes, and GreedyRun as back-to-back decode-graph replays with on-GPU argmax. RTX 3060, host-local measurement:

Model This engine (cuda-q4) Ollama 0.21.0 q4_K_M
Qwen2.5-0.5B 434 tok/s, TTFT 45 ms 246 tok/s, 116 ms
Qwen2.5-1.5B 183 tok/s, TTFT 140 ms 152 tok/s, 119 ms

Also: cuda-q8[:N] / cuda-q4[:N] backends exposed on the CLI/HTTP surface; incremental detokenization in the generators; new GenerativeModel API SupportsGreedyRun/GreedyRun (temperature > 0 keeps the per-token Decode + CPU sampler path). Parity gates: GreedyRun matches sequential Decode + greedy argmax bit-exactly on both backends' test suites (187 macOS / 188 Linux, all green); outputs stay bit-exact run-to-run.

See docs/RELEASE_NOTES.md for full notes. Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

Downloads (SHA-256)

File Platform / backend SHA-256
lykuro-native-engine-macos-arm64 macOS Apple Silicon, Metal (single binary, ad-hoc signed) 4741d1fed1cbac97bcbd10f70d45e7e9e8cc5c094978f3a3b31d2e135f68c327
lykuro-native-engine-macos-metal-1.0.4.tar.gz macOS Apple Silicon, Metal (full package) b3ed1c47523835db21d0d7db12390b7f1aec8663c921e78e0c09e020cbb97e6b
lykuro-native-engine-linux-cuda-1.0.4.tar.gz Linux x86_64 + NVIDIA CUDA (full package) 9cfe513d4f9b72d7d507fec5c5fc09614ec7fc3149f1881817d7e4da73d234d6
lykuro-native-engine-linux-amd64 Linux x86_64, CPU (single binary) 02e613a907d0f8daad61d99fe4b7e1fb9c6f52156508e3ac2015e9d4a42938ec
lykuro-native-engine-linux-arm64 Linux aarch64, CPU (single binary) 10586713501e6ad3a33eae45ea7a6473db7871b7d6f94583f4665a29cea39703

Runtime requirements: Linux binaries need glibc + system OpenSSL (CUDA package additionally needs the NVIDIA driver/CUDA runtime); macOS binaries need Apple Silicon (arm64) and are ad-hoc signed — browser downloads need xattr -d com.apple.quarantine once.

v1.0.3 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 15 Aug 08:51

v1.0.3 (2026-08-15)

Metal kernel backend — faster than Ollama on Apple Silicon

New hand-written Metal compute-kernel backend (metal-fast FP16, metal-q8 INT8, metal-q4 INT4 weight-only; runtime-compiled MSL, no MPSGraph) replacing per-token graph execution with one fused command buffer per token. INT8/INT4 quantization follows the CUDA backend's scheme; activations stay FP16 with FP32 accumulation everywhere; all reductions are fixed-order, so output remains bit-exact run-to-run.

metal-q4 is now the default backend on macOS for run and the HTTP API. metal (the FP32 MPSGraph parity anchor) and every other backend remain selectable via --backend / hardware.backend (engine.json accepts the new names).

Measured on an M4 Pro (median decode over 256-token generations, identical client-side methodology for both engines) vs Ollama 0.32.5 q4_K_M:

Model This engine (metal-q4) Ollama q4_K_M
Qwen2.5-0.5B-Instruct 278 tok/s, TTFT 42 ms 246 tok/s, 103 ms
Qwen2.5-1.5B-Instruct 163 tok/s, TTFT 90 ms 154 tok/s, 101 ms

Quality gates: the FP16 kernel path tracks the CPU reference within tolerance on a teacher-forced trajectory (greedy-identical output on the real checkpoint); quantized modes are gated by quantization-tolerance parity tests; all modes are deterministic across runs (tests/metal/metal_fast_parity_test.cpp).

See docs/RELEASE_NOTES.md for full notes. Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

Downloads (SHA-256)

File Platform / backend SHA-256
lykuro-native-engine-macos-arm64 macOS Apple Silicon, Metal (single binary, ad-hoc signed) ca3de24c0859839d84f08d520b322664e2589722eee0de57cb5d017367040015
lykuro-native-engine-macos-metal-1.0.3.tar.gz macOS Apple Silicon, Metal (full package) 23a1c37cc17b0f60549dc1ba4fa371b3c258c289f8ea9664b687259ee97ffdb8
lykuro-native-engine-linux-cuda-1.0.3.tar.gz Linux x86_64 + NVIDIA CUDA (full package) 072729741d3bc81b86849f640359097d19a2ce07204030f90d9fd7a758fc602e
lykuro-native-engine-linux-amd64 Linux x86_64, CPU (single binary) 271313b66b56e903fc10ff2549498f0d8150cea29e1aa15a1698186bcd0d6ab3
lykuro-native-engine-linux-arm64 Linux aarch64, CPU (single binary) df168bcf73f02c47cbe58adf3cfae319de586699a331117106c3f1da68903a1e

Runtime requirements: Linux binaries need glibc + system OpenSSL (CUDA package additionally needs the NVIDIA driver/CUDA runtime); macOS binaries need Apple Silicon (arm64) and are ad-hoc signed — browser downloads need xattr -d com.apple.quarantine once.

v1.0.2 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 15 Aug 06:00

v1.0.2 (2026-08-15)

Robustness fixes for the HTTP compat API (serve) and its CLI clients.

  • The server now ignores SIGPIPE, so a client aborting a stream can no longer kill the process.
  • Generation stops as soon as a streaming client disconnects instead of running the request to completion.
  • The CLI accepts the model names that /v1/models and /api/tags report, so listed names can be passed back to run/generate as-is.

See docs/RELEASE_NOTES.md for full notes. Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

Downloads (SHA-256)

File Platform / backend SHA-256
lykuro-native-engine-macos-arm64 macOS Apple Silicon, Metal (single binary, ad-hoc signed) 8d6c429f83561c29bdcc5c2ab4c2870a85b6e15ae49e6582c11c4aae6eebdb13
lykuro-native-engine-macos-metal-1.0.2.tar.gz macOS Apple Silicon, Metal (full package) 80e6a908b578e5cebb4764c1ff6f869f078beb0214144c2ee16d0ab89a2a1bf0
lykuro-native-engine-linux-cuda-1.0.2.tar.gz Linux x86_64 + NVIDIA CUDA (full package) 461021d4cf5558ff0476a5d423123900418b9715639d5d9b428574906a4b3b99
lykuro-native-engine-linux-amd64 Linux x86_64, CPU (single binary) 4a60f1941e3b21dba5b7362c498f4fd482408252a6a1c9574c088b3396ef1879
lykuro-native-engine-linux-arm64 Linux aarch64, CPU (single binary) 40f2151efeae2815a83f4aca5c0a8ced842bbc0648906bb8e072c23c48d75266

Runtime requirements: Linux binaries need glibc + system OpenSSL (CUDA package additionally needs the NVIDIA driver/CUDA runtime); macOS binaries need Apple Silicon (arm64) and are ad-hoc signed — browser downloads need xattr -d com.apple.quarantine once.

v1.0.1 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 12 Aug 04:31

v1.0.1 (2026-08-12)

  • GET /api/version now identifies the engine: the response gains an "engine":"lykuro-native-engine" field alongside "version".

See docs/RELEASE_NOTES.md for full notes. Same pre-release caveats as v1.0.0 (unsigned macOS binaries pending Developer ID enrollment).

v1.0.0 — Lykuro Native Inference Engine (pre-release)

Choose a tag to compare

@lykuroai lykuroai released this 10 Aug 20:53

Release Notes

v1.0.0 (2026-08-11)

First release of the Lykuro Native Inference Engine — a from-scratch
local LLM inference engine with no third-party inference runtime, per
LYK-NIE-SD-001 and the Metal addendum LYK-NIE-ADD-METAL-001.

Highlights

  • Own engine, end to end. In-tree JSON parser, SHA-256, safetensors
    reader, byte-level BPE tokenizer, chat template, sampler, scheduler,
    KV cache, and all inference kernels. No Ollama / llama.cpp / vLLM /
    TGI / mlx-lm in source, binary, or transitive form (AT-01 / AT-M03,
    enforced by tools/check_no_forbidden_runtime.sh).
  • Correctness first. CPU FP32 reference as the oracle; every backend
    is verified against the real Qwen2.5-0.5B-Instruct checkpoint using an
    HF-transformers reference (logits + greedy agreement), and is
    bit-exact run-to-run.
  • Two GPU backends behind one interface.
    • CUDA (Linux): BF16-resident weights, fused decode kernels, CUDA
      Graphs, paged KV + scoped prefix cache, INT8/INT4 weight-only
      quantization, and a 2-way tensor-parallel PoC. ~150 tok/s single /
      ~450 tok/s at batch 16 on an RTX 3060 (dev figures).
    • Metal (macOS, Apple Silicon): MPSGraph forward with resident
      unified-memory buffers, chunked prefill, graph pre-warm, and FP16
      (weights/activations/KV, FP32-safe reductions) halving resident VRAM.
  • Security & serving. mTLS gRPC with Control/Data identity
    separation, Ed25519 manifest signature verification (fail-closed),
    content-free logs/metrics, loopback metrics endpoint, and a strict
    fail-closed JSON config.
  • Stability — both 24h soaks passed. CUDA: 237,009 requests, 0 failed,
    RSS bit-identical, 100 reload cycles leak-free. Metal: 137,440 completed,
    0 failed, phys_footprint flat (~2656MB over 24h) after fixing a
    per-request autorelease leak; 100 reload cycles leak 11.7MB. Per-request
    bookkeeping is bounded by in-flight work.
  • Unified Memory admission (Metal). Load-time weight admission plus
    runtime staged watermarks — soft sheds new sequences, hard caps KV
    growth — with committed-KV accounting.
  • Supply-chain gate. tools/scan_vulnerabilities.sh cross-checks the
    SBOM against a VEX ledger and OSV, fails closed on unreviewed deps or
    un-waived CRITICAL/HIGH; emits vulnerability-report.json in CI.

Ollama-style unified commands

Every operation is a native-engine <subcommand>:

  • pull <hf_repo> [out] — download a HF checkpoint and convert it to a
    Lykuro artifact natively (no Python).
  • run <model_or_repo> ["prompt"] [--backend … --max-tokens N --temperature T --system "…"] — config-less inference. Accepts a local artifact dir OR a
    HF repo id, which auto-pulls if not already local (single-command run).
    Streams output, or starts an interactive chat with no prompt.
  • serve --config <path> — the gRPC engine server (legacy --config still
    works).
  • convert <hf_dir> <out_dir> — HF checkpoint → artifact.
  • serve --http [--port 11434] — Ollama- and OpenAI-compatible HTTP API
    (/api/generate, /api/chat, /api/tags, /api/pull; /v1/chat/completions,
    /v1/completions, /v1/models). Models given by HF repo id auto-pull.

Packaging

  • linux-cuda and macos-metal profiles via tools/make_package.sh:
    staged tree, sorted checksums, provenance manifest, Ed25519-signed
    manifest, deterministic tarball. SBOM (SPDX 2.3) and full license
    texts included.
  • Single self-contained binary. gRPC/protobuf/abseil/OpenSSL are
    statically linked (release-static preset, third_party/build_grpc_static.sh);
    macOS links only /usr/lib + Apple frameworks, Linux the C/C++ runtime
    • system OpenSSL + CUDA. A cross-platform gate
      (tools/check_selfcontained.sh) fails the build on any forbidden dynamic
      dependency.
  • macOS install (§24). pre/postinstall prechecks, enable_service.sh
    (non-root _lykuro LaunchDaemon), and uninstall.sh. Two-phase signing:
    Phase 1 --dev ad-hoc (internal test), Phase 2 Developer ID + notarize.
  • Operations runbook (docs/operations/runbook.md): deploy, monitor,
    Drain/Resume update, versioned-package rollback, recovery.

Known limitations / not certified

  • This is a pre-release. Public signed binaries are not attached:
    macOS Developer ID signing + Apple notarization (Phase 2,
    downloads.lykuro.ai) await Apple Developer Program enrollment. The
    sign/notarize/staple pipeline is implemented and self-skipping until the
    certificate is present. Build from source with the release-static
    preset, or use the internal Phase 1 --dev ad-hoc package.
  • Certified Profiles are dev-measured, not production-certified:
    formal security review, signed-artifact-only measurement, and
    cross-host variance data are pending (the 24h soaks themselves passed).
  • Custom Metal kernels (precompiled metallib) require an Xcode CI
    runner — the MVP is MPSGraph-only.
  • Hardware/OS coverage is limited to the entries in
    docs/compatibility-matrix.md. Sharded weights, MoE, embeddings,
    vision, and NCCL-based multi-GPU are out of scope for this release.
  • Quantized (INT8/INT4/FP16) models change greedy output relative to the
    FP32 oracle by design; per-model quality gating belongs to the offline
    evaluation pipeline.

See docs/DEFINITION_OF_DONE.md for the full per-item status against
both specifications.


Quick start

curl -fsSL https://raw.githubusercontent.com/lykuroai/engine/main/deploy/macos/install.sh | bash   # macOS, no cert
native-engine pull Qwen/Qwen2.5-1.5B-Instruct
native-engine list
native-engine run  Qwen/Qwen2.5-1.5B-Instruct "What is 2+2?"
native-engine serve                       # HTTP API (Ollama /api/* + OpenAI /v1/*) on 127.0.0.1:11434
native-engine serve --host 0.0.0.0        # expose on the internal LAN (unauthenticated — firewall it)

Downloads

File Platform Backend SHA-256
lykuro-native-engine-linux-cuda-1.0.0.tar.gz Linux x86_64 + NVIDIA CUDA GPU 58da75f91e25e800f30062a08849b6b294ece714ee403c76c5d2df214c9f6d3a
lykuro-native-engine-linux-amd64 Linux x86_64 (AMD/Intel) CPU 1d05c55c3f076a1a65ba748fd49f815de661a44fa7a497a1d4f04043c7d9ad20
lykuro-native-engine-linux-arm64 Linux aarch64 CPU 620203dc0882d6c0213d086a5fa25e1d82d9a826a6d61d84aac52f2efbdf18e9
lykuro-native-engine-macos-arm64 macOS Apple Silicon Metal (Mac GPU) 239de55524d5ba5031bbaff1afb56200de26d3e68d3a64e1fe2cb0c708828abd
  • macOS ad-hoc signed (not notarized); browser downloads need
    xattr -d com.apple.quarantine <file> once, or use the curl installer.
  • The HTTP API is unauthenticated — bind non-loopback (--host) only on a
    trusted network; use the gRPC mTLS server (serve --config) for auth.
  • All binaries are single self-contained (static gRPC/protobuf/abseil).