Showing stories from 2025-06. View all
Hello.
I’ve created a TypeScript package that enables dependent-type–like checks by implementing a scripting language called CionLisp entirely at the type level. By extracting types from runtime values, it enables type validations not natively supported by TypeScript.<p>Using this, I’ve implemented ...
Doing dynamic dispatching in a strict static typing language is hard. Something as simple as,<p><pre><code> map.put("add", add);
map.put("hello", hello);
fn add(a: i32, b: i32) i32 { return a + b; }
fn hello() []const u8 { return "Hello World"; }
</code></p...
N.b. `(: flow-paragraph (→ (list Word) (list (list Word))))` are Typed Racket, type declarations.
Some time ago I wanted to write a MCP server in Zig but found out there's no real JSON-RPC support in Zig, which MCP needs for communication. I ended up developing a JSON-RPC 2.0 library in Zig and more [1], which had its challenges.<p>So I finally was able to put together a MCP server in Zig. ...
Just shipped Burrito, a QuickJS wrapper for Nim that lets you embed a full JS REPL in your Nim apps. Call JS from Nim (and vice versa), run interactively, and more. Built in a weekend (mostly on my phone) - code, docs, tests, and a landing page all included!