About Jda
What is Jda?
Jda is an open source systems programming language built entirely from scratch. The compiler is self-hosted — written in Jda itself — and was bootstrapped from raw x86-64 assembly. There are no dependencies on C, C++, Rust, LLVM, or any other external compiler toolchain.
Jda is free software, released under the MIT License.
Public Announcement (May 17, 2026)
Today marks the official announcement of the Jda Programming Language to the wider developer community. While Jda reached its 1.0.0 milestone recently, this is our first broad invitation for developers to use the language, explore the ecosystem, and help shape its future.
We need your feedback! As a language built from scratch, Jda thrives on community input. Whether you’re finding bugs, suggesting features, or just sharing your experience, every bit of feedback helps us make Jda better.
Design Goals
- Self-sufficiency — The entire toolchain is written in Jda. No external compilers, no foreign runtimes.
- Performance — Beats C on 3 of 5 benchmarks. 33x faster compilation than Rust. SSA-based IR with constant folding, DCE, tail call optimization, register allocation, and peephole optimizations.
- Simplicity — A small, readable language with a focus on clarity. Structs + traits + impl (no class hierarchies), explicit types, straightforward control flow.
- Batteries included — 114 standard library packages covering networking, crypto, data structures, file I/O, HTTP, JSON, compression, testing, ML, and more.
- Great tooling — Formatter, language server, doc generator, test runner, benchmarker, fuzzer, race detector, REPL, package manager, version manager, and VS Code extension.
Current Status
Self-hosting converged (March 1, 2026). The compiler compiles itself and produces a byte-identical binary:
jda0 (asm) -> jda1 (374 KB) -> jda1_sh2 (2.1 MB) -> jda1_sh3
^^^^^^^^
identical — fixed point- 114 standard library packages
- 361 conformance tests, all passing
- Cross-platform: native on Linux, Docker-based on macOS/Windows
- Native installers for Windows (.exe), macOS (.pkg), Ubuntu (.deb), Fedora (.rpm)
The Bootstrap Story
Jda started as a minimal assembler (jda0) written in x86-64 assembly. That assembler was used to build a simple compiler, which was then used to build a more capable compiler, and so on — each stage written in the language produced by the previous stage.
Today, the Jda compiler compiles itself. The compiler source (jda1.jda) is a single ~22,000 line file that implements the full compilation pipeline: lexer, parser, SSA-based IR, optimizations, register allocation, and direct x86-64 machine code emission. The output is a statically linked ELF binary with no libc dependency — syscalls go directly to the kernel.
Language Features
Core: functions, structs, arrays, pointers, references, if/else, loops, for-in, const, enums, generics, const generics, closures, pattern matching, defer, inline assembly
Type System: i64, i32, i8, f64, bool, &T references, generics (fn foo<T>()), const generics (fn foo<const N>()), traits, derive macros (Debug, Eq, Clone, Hash, Ord)
OOP: struct + trait + impl (Rust-style), method dispatch, operator overloading, derive macros
Concurrency: spawn/channels, green threads (J-Threads), deadlock detection, atomic ops, race detection
Error Handling: Result type, ? operator for error propagation, defer for cleanup, panic for unrecoverable errors
Open Source
Jda is free and open source software, released under the MIT License. The entire language — compiler, standard library, tools, documentation — is developed in the open on GitHub.
- Source Code: github.com/jdalang/jda-lang
- Issues: github.com/jdalang/jda-lang/issues
- Discussions: github.com/jdalang/jda-lang/discussions
Contributing
Contributions are welcome. See the Contributing Guide for how to build, test, and submit changes.