Back to browse
GitHub Repository

Ohnrscript ( `.ohn`) is a Turing-complete dual compiling language, Ahead-Of-Time (AOT) compiler, and operating system stack built entirely from scratch. (`.ohn`) files can compile to either LLVM IR or highly-optimized JavaScript Syntax for the V8 Engine.

3 starsJavaScript

Ohnrscript – A systems language and HTTP unikernel in JavaScript syntax

by focusjordan·Jul 23, 2026·2 points·0 comments

AI Analysis

●●●BangerWizardryZero to One

JavaScript syntax compiling to LLVM IR for a 24KB unikernel with zero GC pauses.

Strengths
  • Dual compilation targets LLVM IR for bare-metal and V8-optimized JS from same source.
  • 24KB HTTP unikernel boots under 1ms in QEMU while driving VirtIO network cards directly.
  • Strict i32 integers and fixed buffers eliminate garbage collection overhead entirely.
Weaknesses
  • Incompatible with existing npm packages due to lack of dynamic objects and prototype chains.
  • Requires custom VS Code extension since standard JavaScript tooling cannot parse the subset.
Target Audience

Systems programmers wanting web-native syntax for bare-metal development

Similar To

AssemblyScript · GraalVM · TinyGo

Post Description

Hey HN, Excited to share Ohnrscript (.ohn) — a dual-compiling programming language that brings web-native syntax to low-level systems code.

Ohnrscript lets you write code using familiar JavaScript syntax (const, let, function, class, array indexing), but compiles ahead-of-time (AOT) to either native LLVM IR or V8-optimized JS from the exact same source file.

To demonstrate what the language can do on bare metal, we built the Ohn-Kernel—a 24KB HTTP unikernel written entirely in Ohnrscript syntax.

It boots in under 1 millisecond inside QEMU or Firecracker, drives a VirtIO network card in Ring 0, and serves HTTP requests with zero OS dependencies and zero Garbage Collection (GC) pauses.

Under the hood, everything is built on 32-bit integers (i32) and fixed memory buffers, allowing JS-like code to run with C-level speed and zero runtime overhead.

We didn't set out with a grand plan to build a bare-metal kernel—we just followed our nose. As we explored compiler design and LLVM, we just kept pulling until we reached a point where we felt ready to share.

You can test the kernel locally in under 30 seconds using Docker (instructions in the main README).

Benchmarks: https://github.com/ohnrshyp/ohnrscript/blob/main/benchmarks/... Dev Guide: https://github.com/ohnrshyp/ohnrscript/blob/main/developer_g...

Similar Projects