Skip to content

Interesting Facts

github-actions[bot] edited this page Jun 29, 2026 · 3 revisions

Interesting Facts

Things that make Kyto unusual — and worth knowing.


1. The compiler is ~21 KB of Assembly

kura is not written in Rust, C, or Go. The entire compiler toolchain is NASM x86-64 Assembly:

  • Windows PE binary (~21 KB)
  • Linux ELF binary (similar size)

GitHub reports the repo as ~96% Assembly. That is not a labeling trick — the Rust crates were removed; kura runs without a Rust runtime.


2. A language built from scratch

Kyto is not a thin wrapper around another toolchain. It includes:

  • Its own grammar (let, fn, struct, emit, …)
  • Its own lexer and evaluator in .asm files
  • Its own config format (.kyto.config)
  • Its own project manifest (kyto.toml)

This is not a fork of Python or a YAML preprocessor with a new name.


3. Kyto vs kura naming

Kyto Language (like Rust)
kura Compiler (like rustc)

Release zips are named kyto-* because they are Kyto project releases. The binary inside is kura.


4. Privacy is architectural, not marketing

  • No network calls in the compiler
  • No telemetry
  • No cloud account required
  • Secrets stay on disk; optional local encryption (ChaCha20-Poly1305)

kura compile never phones home.


5. One compile, many artifacts

A single kura compile can emit simultaneously:

  • .env + .env.example
  • SQL user seeds
  • TypeScript constants
  • JSON user lists
  • Bash deploy export scripts

Most stacks need 3–5 separate tools or copy-paste for this.


6. Kyto Lite: config without code

config_only = true means operators edit .kyto.config like a simple flat file — no programming required.

DOMAIN app.example.com
USERS alice bob

Power users can add .kyto later without changing the workflow.


7. Comments use +

Both .kyto and .kyto.config use + for comments — visually distinct from # (shell) and // (JS), so mixed repos stay readable.


8. Crypto implemented in Assembly

kura encrypt / kura decrypt use ChaCha20-Poly1305 (RFC 8439) implemented in crypto.asm — compatible with the original design, no OpenSSL dependency in the hot path.


9. Dual-platform from one codebase

Windows and Linux share:

  • lexer.asm, kyto_eval.asm, crypto.asm, config.asm, emit_*.asm

Only entry points and I/O differ:

  • kura.asm + win_io.asm (Windows)
  • kura_linux.asm + linux_io.asm (Linux)

10. CI builds on every push

GitHub Actions compiles kura on Ubuntu and Windows for every push to main. Releases publish:

  • Zip archives (Windows + Linux)
  • ghcr.io/voidmute/kyto container

11. Comparable projects (for context)

Tool What it does Kyto difference
dotenv .env files only Kyto also emits SQL, TS, deploy
Helm values K8s config Kyto is local-first, any stack
Dhall / CUE Config languages Kyto targets app dev artifacts directly
Terraform Infrastructure Kyto focuses on app env + users + deploy exports

Kyto sits in the "compile my app config" niche, not "provision cloud resources."


12. The binary was bootstrapped in public

The journey (visible in git history):

  1. Early toolchain (including Rust) proved the design
  2. Full port to NASM Assembly
  3. Rust removed — Assembly-only repo
  4. Linux port, crypto, CI, releases, wiki

13. Real-world usage

Projects can run Kyto in config_only mode to generate portal env, users, and deploy scripts from .kyto.config. See examples/minimal in the repository for a minimal working setup.


14. What's still evolving

Honest roadmap items:

  • Full emit env(build_env(...)) eval parity for random secrets merge
  • kura init --name / kura compile --entry CLI flags
  • Richer .kyto control flow in evaluator

See Architecture and the asm roadmap.


15. “Kyto was here”

When you run kura init, every scaffolded file is stamped with a Kyto was here comment — the compiler’s way of marking a fresh Kyto project:

File Stamp
kyto.toml # Kyto was here
.kyto.config.example + Kyto was here
kyto/main.kyto + Kyto was here
README.md (if new) <!-- Kyto was here -->
docs/KYTO.md (if new) <!-- Kyto was here -->
.gitignore (if new) # Kyto was here

Existing README.md or .gitignore files are left untouched so kura init never overwrites your work. The success message prints initialized Kyto project (Kyto was here).


16. By the numbers

Fact Detail
Compiler size ~21 KB NASM binary
Platforms Windows x86-64, Linux x86-64
Repo language split ~96% Assembly on GitHub
One kura compile .env, SQL, JSON, TypeScript, deploy script
Network at compile time None

Kyto is a small, self-contained toolchain aimed at teams that want one local compile step instead of maintaining parallel config in several formats.

Clone this wiki locally