Getting Started
OverviewLanguage GuideFull Reference
Book
Table of ContentsIntroductionPrefaceGetting StartedLanguage TourOwnershipErrorsConcurrencyStdlibNetworkingDataPackagesSpeed & SafetyCross-PlatformToolingCookbookAppendix
Reference
Standard LibraryKeywordsPerformanceSecurityBuilt-in FunctionsStatusDebuggingABI
How-To
Getting StartedHTTP APIsErrorsPackagesConcurrencyMemoryWASITestingRelease Builds
Project
RoadmapVisionChangelogContributing

Changelog

Unreleased

0.6.8 - 2026-08-30 (interface type hardening + consolidation plan)

0.6.7 - 2026-08-30 (consuming View detach portability)

0.6.6 - 2026-08-30 (normative slice safety)

Next: v0.6.8 → v0.7 consolidation — no new features. Freeze COW spec, property-based ownership testing, channel model-check, Unicode conformance suites, C runtime modularization, application benchmarks, CI automation, external review. See docs/CONSOLIDATION.md.

0.6.5 - 2026-08-30 (PQC + error tracing + JSON + Unicode 17)

ML-DSA post-quantum signatures (FIPS 204)

Error tracing

UUID expansion (RFC 9562)

JSON marshalling

Unicode 17

C backend

0.6.3 - 2026-08-30 (C backend ownership)

0.6.2 - 2026-08-28 (copy-on-write slice ownership)

0.6.1 - 2026-08-27 (native LLM bridge hardening)

0.5.15 - 2026-08-26 (tooling polish)

Tooling

Packaging

Networking

0.5.14 — 2026-08-25 (stdlib safety completion)

Safety

Testing

0.5.13 — 2026-08-25 (performance contract)

Performance

CI

0.5.12 — 2026-08-24 (flake and CI honesty)

CI

Testing

0.5.11 CI follow-up

0.5.11 — 2026-08-23 (native backend hardening)

Backend policy

CI

Verification

0.5.10 — 2026-08-23 (package-local malformed codec coverage)

Runtime

Testing

Verification

0.5.9 — 2026-08-22 (stdlib safety contracts)

Tooling

Documentation

Verification

0.5.8 — 2026-08-22 (memory safety, claims CI, faster-than-Rust gates)

Tooling

Documentation

Bug fixes

Verification

0.5.7 — 2026-08-18 (stdlib expansion, string ops, Go parity push)

Compiler

Standard library (wave 3 — remaining memory-safe surface)

Standard library (gap close — memory-safe, low-latency)

Closed the remaining application-stdlib gaps that can stay memory-safe. Compress/hash hot paths are C (zlib/flate/LZW/SHA3/MD5). No unsafe, weak, go/*, or debug/* binary parsers.

Standard library (Go-equivalent wave)

Mako-shaped equivalents of the Go standard library — snake_case, no panic-on-OOB, Result instead of nil. Not a syntax clone.

0.5.6 — 2026-08-17 (native backend ownership fix)

Bug fixes

0.5.5 — 2026-08-16 (CI fixes, OpaqueHandle, backend regressions)

Bug fixes

New features

0.5.4 — 2026-08-15 (stdlib expansion, TLS server pool, self-contained macOS)

New features

Bug fixes

0.5.3 — 2026-08-14 (native backend completeness & memory safety)

Bug fixes

New features

Real source-level debugger (DAP + lldb)

Native-backend ownership fixes

0.5.2 — 2026-08-12

Efficient map iteration

Adversarial ownership test suite (ASan-verified)

Six new test files exercising 14 previously untested safety gaps:

All tests pass under ASan with zero leaks, use-after-free, or double-free.


0.5.1 — 2026-07-30

DTLS over UDP + SRTP key export

New std/dtls pack and dtls_* builtins (runtime/mako_dtls.h): DTLS 1.2 over a UDP socket — the WebRTC DTLS-SRTP building block Nalobi-style programs need.

Also fixed along the way:

0.5.0 — 2026-07-29

Native-first default

The default compilation backend is now native (Cranelift). makori build, makori run, and makori test produce native object code directly — no C intermediate step.

The C backend remains available via --backend c and is used automatically for modes the native backend does not support: sanitizers (thread, undefined), cross-compilation, --emit-c, and --static. If you explicitly pass --backend native with an unsupported mode, you get a hard error with guidance.

Both backends pass 394/394 tests.

0.4.21 — 2026-07-28

Public package registry + wildcard version fix

The default public registry (https://loreste.github.io/mako-packages) is now built in — makori pkg get <name> works out of the box with no configuration. Override with MAKO_REGISTRY_URL or [registry] url in mako.toml.

0.4.20 — 2026-07-28

Source mapping (#line directives)

Generated C output now includes #line directives that map back to the original .mko source file. Debuggers (gdb, lldb) can step through Mako source lines instead of generated C. Directives are emitted across all codegen paths: function bodies, if/else, while, for (all variants), defer, crew, arena, unsafe, select, closures, and block expressions.

0.4.19 — 2026-07-27

Remote package registry + signed packages

makori pkg get <name> [version] fetches packages from an HTTPS registry, verifies SHA-256 tarball integrity, and adds the dependency to mako.toml. The resolver falls back to the remote registry automatically when local and git sources miss.

0.4.18 — 2026-07-27

Hex, binary, and octal integer literals

0xFF, 0b1010, 0o77 with underscore separators (0xFF_FF, 0b1111_0000).

Security hardening (white-hat audit)

All three tiers from the security audit scope (docs/SECURITY_AUDIT_SCOPE.md):

Audited and confirmed safe (no changes needed): SCTP/Diameter parsing (bounds-checked), HPACK decode (bounded), MAKO_CFLAGS (no shell, Command::arg).

0.4.17 — 2026-07-27

Ownership: a returned value that cannot alias no longer suppresses the drop

transfer_own_on_return marks a returned local as moved so it is not freed before return. Its Expr::Call arm is written for the bag constructors (Ok/Err/Some) but matched every call shape, so any return f(local) disarmed that local's drop. return len(a) yields an int64_t, which cannot alias the backing array, yet the array was never freed: 1.6 MB leaked per call, 813 MB over 500 calls where it now holds at 8 MB.

The same shape appeared four more times, each fixed by cloning a borrow while leaving a live owner alone:

With every escape path cloning, return user_fn(local) is finally safe to free. A first attempt at the top-level guard used a blocklist and aborted five C-backend fixtures with SIGTRAP; the shipped guard is a whitelist over scalar C types, so anything that might carry ownership keeps transferring.

This also closed the whole append gap against C. A 10M-element append loop ran 6.5 ms against C's 3.2 ms purely because every call faulted in fresh pages; it now measures 3.20–3.57 ms against C's 3.16–3.39 ms.

The gate could not have caught any of it: its RSS check is a ratio across runs, and every run leaked the same amount, so the ratio stayed flat at 800 MB. Adds examples/bench/slice_drop_soak.mko and a gate step with an absolute peak-RSS bound. run_backend now checks every fixture — the script has no set -e and a bash function returns only its last command's status, so failures mid-list were discarded.

Windows: static mutexes were unusable, and crypto silently produced garbage

pthread_mutex_t mapped to CRITICAL_SECTION and pthread_mutex_lock called EnterCriticalSection, but entering a zeroed CRITICAL_SECTION is undefined and faults. MAKO_MUTEX_INIT resolves to {0} on Windows, and fifteen runtime mutexes are declared that way and never passed to pthread_mutex_init. Each faulted on first lock, which was the entire SIGSEGV group in the Windows suite — the owners line up one-to-one with the crashing fixtures. Mapped to SRWLOCK, whose documented static initializer is {0}.

sha256_hex smeared a 64-bit FNV hash across 32 bytes and returned it formatted as a digest; hmac_sha256_raw parsed that back into "MAC" bytes; hmac_sha1 returned ""; pbkdf2_sha256 had no fallback at all. An empty MAC compares equal to an empty MAC, so a signature check built on any of these passed for every input, on the platform where that is hardest to notice. Adds RFC 3174 SHA-1, FIPS 180-4 SHA-256, RFC 2104 HMAC and RFC 2898 PBKDF2, verified against published vectors and cross-checked against CommonCrypto.

Windows went from 38 failing fixtures to 21. The remainder is unported platform surface — filesystem semantics, socket address behaviour, signals, the sampling profiler, AEAD/HKDF — so the full suite now reports with an annotation carrying the count rather than gating, while the core language tests still gate.

join_timeout did not bound its wait

mako_await_timeout_ms polled in 2 ms steps and advanced its own counter by 2 per hop, assuming every nanosleep returned on schedule. Under contention it does not, so the loop ran past the caller's timeout and the final check reported the now-finished task as success: join_timeout(40) against 400 ms of work returned Ok. Now measured against the monotonic clock, with the last hop clamped so the wait cannot overshoot.

Array literals build from the element type

The literal-shape checks only matched Expr::String / Expr::Float / Expr::Bool / Expr::Array, so [s] holding a string variable fell through to the int-family path and emitted int64_t lit[] = { s }, which does not compile. Dispatches on the emitted element type instead. The nested case moves rather than copies, since mako_arr_*_of takes ownership of the element headers.

LSP completes from the real builtin table

Completion offered a hand-written seed of thirteen builtins against a type checker table of roughly 2500, so almost nothing the language provides was discoverable and the seed drifted every time a builtin landed. Now read from TypeChecker::builtin_signatures(), with each item carrying its rendered signature. serverInfo advertised a hardcoded 0.5.0 while the crate was 0.4.16; it now reports CARGO_PKG_VERSION.

Dead code

Removed ~20,200 lines: 103 emit_builtin_call_* functions and 5 check_builtin_call_* functions that were an unreachable second copy of the live emit and check paths, the two macros that fed them, const_len, and MapValKind::StructKeyPtr. native_ir::lower only looked unused in a default build — it is used by the LLVM backend and the native_ir unit tests — and is now gated on any(feature = "llvm-backend", test).

CI reports failures instead of swallowing them

Three steps ran with continue-on-error, so their failures never blocked a merge. The native suite's comment blamed "missing backend services" for the proxy and SQL failures; those were a free() on a handle owned by SQLite and a SIGPIPE the native test harness never ignored, both fixed in 0.4.16. The Windows default suite and its recursive-depth test were suppressed too, leaving a platform that ships release artifacts unable to block anything.

Removing the suppressions immediately surfaced a real bug: the compiler thread reserved a release-sized 16 MB stack, and a debug build — which inlines nothing and carries full locals per frame — overflowed it on Windows, whose default thread stack is 1 MB against Linux's 8 MB. Debug now defaults to 64 MB.

Memory

MakoHttp2Conn is over 4 MB (stream_body alone is 64 × 64 KB) and mako_http2_conn_new declared one as a stack local, overflowing the thread stack. Found by Valgrind on Linux; macOS survived it by luck of stack layout.

str_builder leaked its struct and buffer on every call — 88 bytes plus growth. mako_str_builder_free already existed; nothing emitted a call to it. Measured over 500 iterations: 48000 bytes in 1500 allocations before, zero after on the native backend, and 4000 on the C backend, the remainder being the literal-argument leak still tracked as open.

Type::Builder separates handles this runtime owns from the Type::Opaque catch-all, which cannot be dropped because it also holds handles owned by foreign libraries — a SqlDB is the sqlite3* pointer itself. This is the pattern the remaining opaque leaks need.

Modules

makori pkg imports lists every pull in a module, classified as relative, stdlib, internal or external, and reports where the manifest disagrees. It parses rather than matching text, so aliases and blank imports are handled by the grammar.

makori pkg tidy reconciles [dependencies] with what the source imports. Additions are automatic; removal is behind --prune, because the scan skips files that fail to parse and a needed dependency can be invisible to it. --check reports without writing, for CI.

Dependencies are keyed by the full import path, matching resolve_module_import_path, not by the first path segment.

Packages

makori pkg publish now refuses a breaking API change under a version that claims compatibility. mako api diff and publish both existed and nothing connected them, so a module could ship a changed signature as a patch and consumers resolving by SemVer range would take it. A break needs a major bump, or a minor bump while major is 0. Additions are not breaking.

Networking

wss_client_connect_headers exposes the extra-header handshake that existed in the runtime but was never wired to a builtin, so Makori code could not send Origin, User-Agent or Cookie on an upgrade. The header block is validated against request splitting.

Known

Rebuilding libquiche from source produces an archive that exports BoringSSL's SSL_* symbols, which collide with OpenSSL and segfault TLS setup. See runtime/third_party/quiche/BUILD_NOTES.md. Quiche is optional; without the archive, H3 falls back to header stubs.


0.4.16

Memory-safety and security audit (runtime-wide)

A sweep of every runtime header, the native bridge, and the ownership classifier. Findings are grouped by what they cost, not by file.

Regression fixed — double-free on a success path. The previous release's "free json_escape temps" change appended a second mako_str_free to five mako_llm.h builders that already freed after snprintf, aborting on the normal path of every llm_message / llm_chat_body / llm_embed_body call. Confirmed under Valgrind and AddressSanitizer. examples/testing/llm_test.mko and json_mako_test.mko are now in scripts/memory-safety-gate.sh — the gate did not previously cover them, which is why the regression shipped green.

Bounds and overflow on untrusted input.

Correctness.

Per-call leaks. Reclaimed owned temporaries across the JSON, GraphQL, OpenAPI, auth, YAML/TOML, SIP, HTTP/2, DB, and LLM builders — including json_get_string, the highest-fan-in accessor in the runtime, and the per-element leaks in yaml_get_list / yaml_keys / toml_keys that grew with document size. Eleven native-bridge shims violated the compiler's consumes_first contract by never freeing the argument the compiler had already released: a 200k-iteration loop over the affected list builtins went from 45.1 MB to 6.6 MB peak RSS.

Ownership classification. 797 string-returning builtins were classified against their C implementations by walking every return path, rather than by name convention. 122 were previously classified owned; 650 more were leaking one buffer per call. The default is unchanged — an unclassified builtin is still treated as borrowed, so the failure mode stays "may leak" and never "double free". A live invalid-free was fixed in the same pass: print(...) of a borrowed builtin such as http_path or tcp_read_fast emitted a mako_str_free on a connection-table field or a static buffer.

Verified. On Linux, all 57 builtins that previously leaked one buffer per call now measure 0 bytes/call under LeakSanitizer, with none regressed. The double-free is gone, confirmed independently by a plain build, AddressSanitizer and Valgrind. UndefinedBehaviorSanitizer is clean across 113 fixtures, and there are no use-after-free, double-free or out-of-bounds errors anywhere in the ASan sweep. Total leaked bytes across the fixture suite fell from 2,103,705 to 1,756,957; ws_api_test dropped 75% and diameter_conn_test went from 4,249 bytes to 48. The 391-fixture suite passes on both the C and native backends. env_keys and read_dir both measure 0 bytes per call under LeakSanitizer and Valgrind; read_dir was leaking 271 bytes per call in shipped code, so this closes a pre-existing leak as well as the new one.

Sanitizers do not run on the native backend — --sanitize is rejected there — so all sanitizer evidence above is C-backend only. The native backend was exercised as a plain functional run, and no memory-safety claim for it should rest on this audit.

Known open (tracked, not fixed here): string literals passed to builtin call sites leak the mako_str_from_cstr temporary — 4–13 bytes per call (str_trim 13, str_len 11, str_replace 10, sha256 8, json_object 4). Pre-existing and unchanged by this release; bound arguments and user-defined functions are unaffected. The fix needs a shared argument-emission path that does not exist yet: builtin arms are spread across ~100 generated emitters with no common place to reclaim an argument temporary. Emitting literals as borrowed views instead would free static storage, and tagging them with an immortal bit would require masking every length read in the runtime — the bug class that produced a str_join abort. sip_test still accounts for 1.54 MB of residual leak across 140k allocations; it barely moved here, so it is a different class and remains untriaged. Channels have no destructor, and a naive one is a use-after-free whenever a spawned task outlives the creating scope — the documented leak is the safer trade until a refcount or a shutdown-drained registry exists; buf_to_string is proven owned but left borrowed (one buffer per call) rather than flipped in a release-blocking change; plugin_call is genuinely two-valued depending on whether the plugin exports free_string, so it stays borrowed; the aliasing string-array helpers share buffers, so freeing both input and output would be a double free; sctp_connectx passes a non-packed address array.

Native typed drops. The shared IR now distinguishes runtime-owned opaque values from foreign handles. Interface boxes are reference-counted, http_request_parse results are deep-cloned and dropped, and foreign database, registry, and OS handles remain on their explicit close paths. Content-keyed struct maps also clone values returned by reads and release stored keys and values on overwrite, delete, copy, clear, and final drop. Interface boxes retain the concrete type's compiler-generated recursive destructor, including slices, maps, nested structs, and owned handles. The focused native fixture and the full struct-key map suite pass under LeakSanitizer and AddressSanitizer.

General networking primitives (protocol-agnostic)

These are the building blocks for any backend — not one application.

Tests: timer_heap_test, peer_table_test, tls_pool_test, sctp_api_test.

Diameter — optional protocol pack (not the general layer)

Adversarial / memory-safety hardening

Memory safety — JSON builder internal leaks

Memory safety — owned string temporaries reclaimed

0.4.16 — 2026-07-23 (tip; tag when packaging cut)

Theme: Real GraphQL query executor; native backend List[T] for non-scalar T; name the adaptive-optimization loop Anneal. Version bump 0.4.15 → 0.4.16.

GraphQL — full query executor

Memory safety — owned values returned from user functions

Native backend — List[T]

Anneal — adaptive optimization

0.4.15 — 2026-07-22 (tag when packaging cut)

Theme: NATS + Redis messaging adapters, GraphQL schema/resolvers, gRPC service registry, OpenAPI builders — backend API surface, no GC.

Messaging adapters

GraphQL schema + resolvers

gRPC + OpenAPI

Tests / docs

0.4.14 — 2026-07-22

Theme: Adaptive optimization — longer-running services get better via offline feedback, not in-process code rewrite. No GC.

Adaptive opt (LR-4b)

0.4.13 — 2026-07-23

Theme: Language-level queue[T] and Graphql (not only free functions).

Language

0.4.12 — 2026-07-23

Theme: Messaging queues + GraphQL HTTP — backend API surface seeds (no GC).

Theme: Messaging queues + GraphQL HTTP — backend API surface seeds (no GC).

Messaging (mq_* / std/messaging)

GraphQL

0.4.11 — 2026-07-23

Theme: HTTP long-run soak + production allocator/PGO knobs (years-up LR-3/4/6).

Theme: HTTP long-run soak + production allocator/PGO knobs (years-up LR-3/4/6).

HTTP soak (LR-6)

Allocator + PGO (LR-3 / LR-4)

0.4.10 — 2026-07-22

Theme: Years-up foundation — long-running services (no GC, stable p99/RSS).

Long-running / production

0.4.9 — 2026-07-22

Theme: LLVM CI job (macOS) + install/doctor smoke on primary hosts.

CI

Install smoke

0.4.8 — 2026-07-22

Theme: Map + I/O native bench workloads, map hot-path speed, regression budget.

Map performance

Bench

0.4.7 — 2026-07-22

Theme: Modes truth table — fail closed on native/LLVM.
Depends on: 0.4.6 residual work in tree.

Modes (fail closed)

0.4.6 — 2026-07-22

Theme: Post-v0.4.5 residual patch — smaller ship, not a mega-0.5.
Versioning: docs/VERSIONING.md — prefer patches (0.4.6, 0.4.7, …) over waiting for 0.5.0.
Next patches: 0.4.7 modes truth table · 0.4.8 map/I/O gates · then 0.5.0 CLI default flip.

Performance

Platform

Packaging note

0.4.5 — 2026-07-22

Theme: Native compiler product path. Integration branch: native-compiler.
After 0.4.5: patch train 0.4.6+ then minor 0.5.0 (default flip). Full map: docs/ROADMAP.md · docs/VERSIONING.md.

Native compiler

Performance (honest, Apple arm64 host, 2026-07-22)

./scripts/native-bench-gate.sh with LLVM release when available (3 samples):

Workload vs Rust (median wall) Notes
native_fib ~1.01× Matches hand C / Rust
native_parity ~1.01× Within gate
native_slice ~1.12× Within 1.25× ship bar; RSS higher than hand C
native_string_slice ~1.35× at tag Tightened post-tag residual pack (see Unreleased)
Compile latency (native vs C backend) ~0.22× Faster compiles
Binary size (some LLVM/native benches) ~36× at tag Fixed post-tag via dead_strip (~1.01×)

Packaging

Residuals (0.5.0+)

0.4.1 — 2026-07-22

Build

Runtime

Performance

0.4.0 — 2026-07-20

mako0.4.0 (CARGO_PKG_VERSION). 362 Mako tests + 80 Rust tests, 0 failures.

Performance

Lint (makori lint)

Concurrency

Build

Ownership free

0.3.0 — 2026-07-19

mako0.3.0 (CARGO_PKG_VERSION). 360 Mako tests + 79 Rust tests, 0 failures. All 11 CI jobs pass (ubuntu, macOS, Windows, ASan, UBSan, GCC, TSan, cross-compile, bench gates, claims gate).

Cross-platform (all CI green)

Ownership free (SAFE-006 depth) — no double-free / path-local free

Package integrity (PR #5 hardening)

Other

0.2.5 — 2026-07-19

mako0.2.5 (CARGO_PKG_VERSION). 357 Mako tests + 75 Rust tests, 0 failures.

Memory safety audit

Package integrity (PR #4 + hardening)

LSP v0.5.0

Infrastructure

Documentation

0.2.4 — 2026-07-18

mako0.2.4 (CARGO_PKG_VERSION).

Soundness and efficiency release after 0.2.3: memory-safe drops by construction, stack POD array lits, closed SAFE/RT residuals, build-time lockfile verification.

Soundness (SAFE / RT)

Speed

Packages

Other

Tests: string_view_test, struct_own_drop_test, sched_pool_test, capture_matrix_test, channel_ownership_test, nested_arr_drop_test, try_drop_test, string_drop_test, stack_array_lit_test, own_drop_*, pkg:: unit suite.

0.2.3 — 2026-07-18

mako0.2.3 (CARGO_PKG_VERSION).

Security patch after 0.2.2: fail-closed JWT JSON/JWKS parsing, safer JWT sign/verify resource handling, dual-stack HTTP listen, and docs for the verified HTTPS contract.

JWT / JWKS

HTTPS / listen

Docs

0.2.2 — 2026-07-18

mako0.2.2 (CARGO_PKG_VERSION).

Security and packaging patch after 0.2.1: concurrent-safe multi-cert SNI, verified TLS hostnames, HTTPS/OIDC client helpers, JWT RS256/JWKS verify, and SHA-256 package lock integrity.

TLS / SNI

HTTPS / OIDC / JWT

Packaging

Prior tip notes (0.2.1 and earlier)

See sections below for generics, stdlib-in-Mako, and match safety.

v0.1.10 — Deepen generics

v0.2.1 — Safety & correctness

v0.2.0 — Stdlib in Makori

Channels

0.1.9 — 2026-07-16

mako0.1.9 (CARGO_PKG_VERSION).

Patch after 0.1.8: generic types, interface bounds, and seed iterator / mutable-closure infrastructure — the foundation for writing the stdlib in Makori.

Generics

Interface bounds

Iterator protocol (seed)

Mutable closures (seed)

Docs / packaging

0.1.8 — 2026-07-16

mako0.1.8 (CARGO_PKG_VERSION).

Patch after 0.1.7: speed-first runtime and codegen wave — hashing, strings, channels/select, HTTP table scale, and compiler allocation cuts. Memory-safety and concurrency correctness retained (or tightened) on every change.

Speed optimizations

Memory safety & concurrency

Bug fixes

Storage / domain P0–P4 product surface

P0 — first-class handles + bloom rebuild - Domain handles (Bloom, PageMan, Predict, MultiMap, …) map to real C pointers (params / returns / struct fields), not int64_t. - bloom_clear resets bits without free/new.

P1 — range · multi-value · string keys - Range buffer grows (TLS 128 → heap up to 65 536); range_cap. - Iterator: range_rewind / range_next / range_key / range_val. - MultiMap multi-value ordered map (multimap_put / get_all / range). - String keys: bloom_add_str / bloom_maybe_str, btree_put_str / get_str / range_str, str_hash64.

P2 — durable sidecars - btree_save v2: magic MBT2 + FNV checksum (legacy v1 load still works). - pman_write_page / pman_read_page (full 4 KiB bulk).

P3 — ergonomics - str_slice_ci_index / str_slice_ci_starts, builder_write_slice. - file_append2 / file_append3 (writev multi-record flush). - Domain registry: domain_reg_put_* / get_* / del (int slots for handles).

P4 — extras - sst_build8 / sst_build_n (N≤8 pairs without C arrays). - Profile JSON schema remains mako.profile_samples.v1 (stable).

Tests: TestDomainHandleFieldsAndFns, TestDomainStoragePolishP0toP4.

0.1.7 — 2026-07-15

mako0.1.7 (CARGO_PKG_VERSION).

Patch after 0.1.6: binary codecs (CBOR/MessagePack/Avro), list combinators, GraphQL/protobuf packages, named timezone offsets.

Avro · GraphQL package · protobuf package · TZ offsets

CBOR + MessagePack + list combinators

0.1.6 — 2026-07-15

mako0.1.6 (CARGO_PKG_VERSION).

Patch after 0.1.5: YAML/TOML encoding packages, plugin product, rich collections, full time + syscall, unicode/utf8 depth.

YAML + TOML encoding

Plugin product · rich collections · full time · full syscall

Full unicode + utf8 package

List[T] + richer collections

Plugin as rich package

0.1.5 — 2026-07-15

mako0.1.5 (CARGO_PKG_VERSION).

Patch after 0.1.4: package-per-directory, unbuffered rendezvous channels, Go-style implicit interfaces, actor int payloads, const-fn depth (match / while / for / break·continue / strings / string const fn), error chain peel, and fallthrough.

Const fn string params / returns

Const string seed

Const-fn break / continue

Const-fn for loops

Const-fn depth (match · while)

Actor int message payload seed

Implicit interface method sets (Go-like)

Package-per-directory · unbuffered rendezvous channels

Seeds & syntax (error chain · fallthrough)

0.1.4 — 2026-07-15

mako0.1.4 (CARGO_PKG_VERSION).

Patch release after 0.1.3: language zero-copy string regions, storage polish, observability/debugger seeds, packaging dry-runs, comptime if fold, and product-path seeds (DAP stdio, profile-serve, live plugin reload).

Product-path seeds (DAP stdio · profile-serve · live plugin reload · soft FB)

Comptime depth · hot-reload depth · prediction seed

DAP dispatch · profile HTTP · cross-target dry-run

Residual roadmap seeds (DAP · pprof · packaging · domain · interop)

Sampling CPU profiler seed

Debugger · OTLP · installer · actor/interface seeds

Storage polish seeds (bloom · range · page manager)

Core string region ops (no substring alloc)

Zero-copy SIP views (hot path)

Adversarial hardening (SIP NAT + SDP + SQL)

SDP (RFC 4566) proxy surface

SIP NAT full support (RFC 3261 §18.2 + RFC 3581)

SIP proxy library positioning

SIP RFC compliance polish (3261 / 3581)

SQL bind arity · SIP proxy production surface

Multi-level LSM · page-backed btree

Storage polish · hot reload seeds

0.1.3 — 2026-07-14

mako0.1.3 (CARGO_PKG_VERSION).

Runtime trust, observability, language ergonomics (closures, f-strings), storage/domain seeds (no SIPREC/WebRTC), packaging polish, and docs.

Storage product depth

Domain tracks batch (no SIPREC/WebRTC)

P4 storage depth · game snapshot seeds

P3 packaging · ShareInt capture · debug locals

Language · observability · runtime trust (since 0.1.2)

0.1.2 — 2026-07-14

mako0.1.2 (CARGO_PKG_VERSION).

Codegen — demand-driven map monomorphs

Language — Option/Result fields in map tuples

Language — nested bag slices as map values

Language — mixed bag nests as map values

Language — nested Option[Option[…]] map values + struct-chan 3-tuples

Language — 3-tuples with channel fields as map values

Language — [][]chan[T] and (chan[T], scalar) map values

Language — nested channel bags ([]Option[chan] / Option[[]chan])

Language — Option[chan[T]] / map[K]Option[chan] / Result[chan]

Language — map[K][]chan[T]

Language — nested maps depth 3

Fix — CI: Windows mutex, nested named-key maps, int-lit array types

Language — map[K]chan[T] channel values

Security — SCRAM proof compare

Language — map tuples with Struct/Enum + homogeneous 4-tuples

Language — map[K]Option[map[…]] / map[K]Result[map[…],E]

Language — map[K](T, U[, V]) tuple values

Language — map[K]Option[[]T] / map[K]Result[[]T,E]

Language — map[K][]Option[T] / map[K][]Result[T,E]

Security — at-rest, limits, cancel, mTLS, SCRAM cbind

Language — []Option[T] / []Result[T,E]

Docs — howto & book collections surface

Language — map[K]Option[T] / map[K]Result[T,E]

Fixes — Option[map[K]V] and annotated None/Some

Fixes — struct eq/hash with composite fields

Language — pack-qualified types & multi-return of structs

0.1.1 — 2026-07-13 (HTTP/2 production + free safety + CI)

Patch release for production edge stability and CI green. makori version reports mako0.1.1 (CARGO_PKG_VERSION).

Fixes — HTTP/2 frame size (mako-lang.com)

Fixes — empty-string free safety

Fixes — CI / portability

Ops / docs

0.1.0 — 2026-07-13 (intern + chan take + proxy splice)

Speed / memory

0.1.0 — 2026-07-13 (map take + HTTP zero-copy)

Speed / memory

0.1.0 — 2026-07-13 (speed audit: release hot path)

Performance

0.1.0 — 2026-07-13 (UUID/ULID + speed/safety)

UUID / ULID (POD Copy IDs — no GC on the value)

0.1.0 — 2026-07-13 (language residuals wave 41)

Ok(Some) · exotic ? · race stack · tracing GC · UCD/PCRE depth

0.1.0 — 2026-07-13 (language residuals wave 40)

Race / Send / NLL / patterns / stability / GC / reflect / JPEG / Unicode

0.1.0 — 2026-07-13 (hex / decimal / bases)

Numeric format & parse (all common bases)

0.1.0 — 2026-07-13 (fmt / print packages)

Go-style fmt and print

0.1.0 — 2026-07-13 (Go-style templates)

Template language (text/template / html/template)

0.1.0 — 2026-07-13 (Email / SMTP package)

Code email from Makori

0.1.0 — 2026-07-13 (MHA + quant GGUF + BPE)

Deeper local AI

0.1.0 — 2026-07-13 (GGUF + transformer kernels + tokenizer)

Local AI depth for real models

0.1.0 — 2026-07-13 (local models: existing weights + your own)

Work with existing models or program your own

Path Surface
Hosted APIs llm_* (unchanged)
Local weights model_* + gpu_*

0.1.0 — 2026-07-13 (GPU AI building blocks)

GPU seed oriented for AI (not graphics)

North star: compose inference/training ops in Makori on multi-vendor GPUs.

0.1.0 — 2026-07-13 (GPU OpenCL multi-vendor)

GPU / accelerator seed (OpenCL + host)

Portable compute for NVIDIA, AMD, Intel (OpenCL ICDs) and macOS (Apple OpenCL → GPU), with host CPU fallback when no driver:

0.1.0 — 2026-07-13 (GPU compute seed)

GPU / accelerator seed (host path)

Initial host-only seed (superseded by OpenCL multi-vendor above).

0.1.0 — 2026-07-13 (WebSocket RFC 6455 complete)

WebSocket production surface

0.1.0 — 2026-07-13 (IPv6 + Happy Eyeballs)

Networking dual-stack

0.1.0 — 2026-07-13 (LLM stream / embeddings / retry)

LLM programming depth

0.1.0 — 2026-07-13 (strong logging)

Structured logging (runtime/mako_log.h)

Production logging surface:

0.1.0 — 2026-07-13 (security / crypto / TLS client)

Cryptography & TLS

Platform surface so you build secure systems in Makori (not a soft PKI product):

0.1.0 — 2026-07-13 (SIP platform: build stacks in Makori)

Position

Mako ships primitives so you can implement transaction engines, dialogs, SIPS, SRTP, proxies, and UAs in Makori — not a prebuilt softswitch/WebRTC stack.

SIP / SDP / RTP (runtime/mako_sip.h, std/sip)

Crypto building blocks for SRTP-in-Mako

0.1.0 — 2026-07-13 (database multi-row)

Multi-row result sets (sql_query_rows*)

0.1.0 — 2026-07-13 (database programming)

Unified SQL (sql_*)

0.1.0 — 2026-07-13 (LLM programming)

LLM runtime (runtime/mako_llm.h, std/llm)

First-class OpenAI-compatible LLM client focused on market gaps:

0.1.0 — 2026-07-13 (low-latency time)

Clocks

0.1.0 — 2026-07-13 (low-level networking)

TCP / UDP sockets

0.1.0 — 2026-07-13 (filesystem / storage production)

Filesystem & storage

0.1.0 — 2026-07-13 (HTTP/2 + HTTP/3 hardened path)

HTTP/2 hardened path (http2_conn_*)

HTTP/3 hardened path (quiche)

0.1.0 — 2026-07-13 (out-of-box one-shot install)

0.1.0 — 2026-07-13 (wave 39 queue)

0.1.0 — 2026-07-13 (wave 38 queue)

0.1.0 — 2026-07-13 (wave 37 queue)

0.1.0 — 2026-07-13 (wave 36 queue)

0.1.0 — 2026-07-13 (wave 35 queue)

0.1.0 — 2026-07-13 (wave 34 queue)

0.1.0 — 2026-07-13 (wave 33 queue)

0.1.0 — 2026-07-13 (wave 32 queue)

0.1.0 — 2026-07-13 (wave 31 queue)

0.1.0 — 2026-07-13 (wave 30 queue)

0.1.0 — 2026-07-13 (wave 29 queue)

0.1.0 — 2026-07-13 (wave 28 queue)

0.1.0 — 2026-07-13 (wave 27 queue)

0.1.0 — 2026-07-13 (wave 26 queue)

0.1.0 — 2026-07-13 (wave 25 queue)

0.1.0 — 2026-07-13 (wave 24 queue)

0.1.0 — 2026-07-13 (wave 23 queue)

0.1.0 — 2026-07-13 (wave 22 queue)

0.1.0 — 2026-07-13 (wave 21 queue)

0.1.0 — 2026-07-13 (wave 20 queue)

0.1.0 — 2026-07-13 (wave 19 queue)

0.1.0 — 2026-07-13 (wave 18 queue)

0.1.0 — 2026-07-13 (wave 17 queue)

0.1.0 — 2026-07-12 (wave 16 queue)

0.1.0 — 2026-07-12 (wave 15 queue)

0.1.0 — 2026-07-12 (wave 14 queue)

0.1.0 — 2026-07-12 (wave 13 queue)

0.1.0 — 2026-07-12 (wave 12 queue)

0.1.0 — 2026-07-12 (wave 11 queue)

0.1.0 — 2026-07-12 (wave 10 queue)

0.1.0 — 2026-07-12 (wave 9 queue)

0.1.0 — 2026-07-12 (wave 8 queue)

0.1.0 — 2026-07-12 (concurrency / result / CI)

0.1.0 — 2026-07-12 (wiring audit)

0.1.0 — 2026-07-12 (module layout)

Compiler modules (implementation order)

  1. src/overflow.rs + runtime/mako_overflow.h + codegen trap path
  2. src/recovery.rs + multi-error emit via diag
  3. src/shutdown.rs + runtime/mako_shutdown.h
  4. runtime/mako_rt.hMAKO_BOUNDS_CHECK / MAKO_BOUNDS_ALWAYS
  5. src/errors.rsResult[T, Enum] helpers for codegen
  6. src/leak.rs + runtime/mako_leak.h

0.1.0 — 2026-07-12 (complete: Result enum, const fn, crew drain)

Language / runtime (completion pass)

0.1.0 — 2026-07-12 (overflow, shutdown, recovery, leak, trace)

Compiler / runtime safety

Tests: examples/testing/overflow_shutdown_test.mko.

0.1.0 — 2026-07-12 (proxy hot path)

Networking / reverse-proxy runtime

0.1.0 — 2026-07-12 (networking & auth)

Networking

Security / auth

Fixes

0.1.0 — 2026-07-12 (expressions & assignment)

Language

Security / stdlib

Concurrency

Security / KDF

HTTP/2

TLS

OS

Networking

Examples

Tooling

Fixes


0.1.0 — 2026-07-12 (control-flow surface)

Control flow & statements

Fixes


0.1.0 — 2026-07-11 (gap close wave 6)

Struct channels · tagged errors

Waves 1–5


0.1.0 — 2026-07-11 (path-style import blocks)

Imports — service-scale groups


0.1.0 — 2026-07-11 (low ceremony + pain map + flair)

Product — real work, less typing

Product — Go/Rust pain → Mako answers

Units — Done


0.1.0 — 2026-07-11 (docs + syntax identity)

Makori-owned syntax (Done)

Language wave 10 (Done)


0.1.0 — 2026-07-10

STATUS north-star / MVP: 100% (homebrew-core publish remains an external blocker).

The Makori Book + docs accuracy pass (Done)

Stdlib Wave 9 regexp increment (Done)

General-purpose package offline/private registry increment (Done)

Stdlib Wave 8 + CLI polish (Done)

General-purpose Toolchain/IDE debug increment (Done)

General-purpose Toolchain/IDE dependency audit increment (Done)

General-purpose Toolchain/IDE documentation generator increment (Done)

General-purpose Toolchain/IDE testing-tools increment (Done)

General-purpose Observability profile increment (Done)

General-purpose Release packaging docs increment (Done)

General-purpose Data/SQL compile-time serialization increment (Done)

General-purpose Data/SQL multi-store compatibility increment (Done)

General-purpose Data/SQL MySQL/Redis polish increment (Done)

General-purpose Data/SQL typed-checker increment (Done)

General-purpose Data/SQL migration increment (Done)

General-purpose Data/SQL transaction increment (Done)

General-purpose Data/SQL increment (Done)

Stdlib Wave 7 (Done)

makori version — Done

Grouped imports — Done

Stdlib Wave 6 (Done)

Stdlib Wave 5 (Done)

Operators (Done)

Stdlib Wave 4 (Done)

Stdlib Wave 3 (Done — raised area coverage)

Stdlib Waves 1–2 (Done — Partials noted)

Stdlib polish (Done)

Stdlib Partials closed (Done)

Standard library expansion (Done)

Security / safety language (Done)

HTTP library + how-tos (Done)

Memory & CPU efficiency (Done)

Incremental builds + native objects (Done)

Performance (Done)

Backend / systems / API / DB engines (Done)

Package manager (Done)

Errors & debugging (Done)

Labeled loops (Done)

CFG NLL (Done)

Packaging

Servers (beachhead Done)

Product / packaging (earlier)

Language / runtime (already in tree)

External blocker

Out of STATUS 100% bar (VISION Later)

Application C source linking (0.4.18)

makori build, makori run, and makori test accept repeatable --native-source <FILE> arguments for explicitly compiling and linking regular .c files. Paths are validated, passed without a shell, included in incremental and direct native link paths, and rejected for WebAssembly.

Edit this page on GitHub Report an issue