-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Lox Implementations
Ethan Zhang edited this page Nov 26, 2025
·
232 revisions
Some brave readers are implementing Lox (or variants thereof) and are making them open source. Particularly brave readers are porting it to other languages.
Are you porting jlox or clox to another language? Feel free to add it to this page!
- zlliang/clox
- CabooseLang/Caboose
- calebschoepp/nqq (article)
- ghost-language/cghost
- jalalmostafa/clox
- Jason2605/Dictu
- valkarias/Pa
- KOREAN139/clox
- nicdard/loxs
- moria-world/emo
- tinwe6/loxi
- tung/clox (bytecode VM with computed gotos + extra language features, article)
- victorgomes/loxvm
- wy3/lox
- ImTouchk/CLox
- baioc/clox (bytecode)
- chidiwilliams/clox (bytecode)
- Roderland/clox (bytecode)
- bayerf/Lox68k (bytecode, complete, extended) Port to a Motorola 68008 single board computer
- HallofFamer/Lox2 (bytecode, extended with optional type system)
- ravener/clox
- FrederikTobner/cellox
- woupiestek/clox
- vincepr/c_compiler (bytecode, extended, wasm runs in browser)
- xiaohuangren1001/lox-efi (bytecode) Port to UEFI Firmware
-
txloc1909/lox (bytecode vm in
clox/) - molee1354/simscript (bytecode, extended)
- Natniif/clox
- ubermenchh/clox
- AndreiMoraru123/clox (vanilla Lox on master + challenges solutions/attempts on feature branches)
- jhmcaleely/clox-pico clox ported to Pico Microcontrollers (article) with additional peek, poke & bitwise op support (article).
- paudsu01/clox (bytecode)
- stjmm/loxOverride (clox w/ challenges and extra features)
- shelter-kytty/hammer-interpreter (functional language implementation based on CLox. Includes an AST phase, tail calls)
- aakshintala/cpplox (Interpreter only in C++17 with Variants instead of visitor)
- aggsol/lox-simple
- ASMlover/loxcc (interpreter & bytecode)
- calebkoy/cplox (source-to-bytecode compiler and interpreter, without native functions)
- chanryu/cloxx (interpreter + mark-and-sweep garbage collector)
- codingpotato/Lox-modern-cpp (bytecode)
- DaanPosthuma/lox (interpreter (using dynamic dispatch instead of visitor))
- flyingalex/cpp_lox(interpreter)
- GeneralPoxter/lox (interpreter + extra challenges)
- hashemi/cloxpp (bytecode)
- Jeff-Mott-OR/cpplox
- mspraggs/loxx
- pkusensei/clox (bytecode)
- rkirsling/cclox
- spraza/lox-cpp
- stheis2/ppclox
- the-lambda-way/CppLox (interpreter)
- ThorNielsen/loxint
- TobiPristupin/lox (Interpreter + some extra features)
- veera-sivarajan/lang0 (Interpreter with Lists and Lambdas)
- vilbedawg/jlox-cpp (Tree-walk interpreter with lists)
- asakidaisuke/levi
- chwwhc/Surpher (tree-walk interpreter in C++17)
- uvxwx/lox1
- ecyk/cpplox (tree-walk + bytecode)
- harishtpj/HPI (Tree walking interpreter with online playground)
- TA-800/Loxpp (Tree-walk interpreter, support for classes coming soon)
- mrjameshamilton/cpplox (A Lox interpreter and LLVM compiler)
- yzabuair/cpplox (A Lox tree-walk interpreter in C++)
- MohaIfk/loxpp-interpreter (Tree-Walk Interpreter in cpp)
- nrosa01/CSLox (interpreter)
- ByronMayne/LoxSharp
- Captain-Quack/Lox
- collenirwin/Loxish
- drewbanas/cloxcs (bytecode)
- drewbanas/jloxcs
- h2oboi89/lox
- JasperDre/CSLox
- jonnyboyC/cs-Lox
- LoxScript
- MadHed/lox.net
- mrahhal/CSharpLox
- Nyhilo/NovaLox
- perlang-org/perlang (Lox-based language with (inferred and explicit) static typing support. Web page is at https://perlang.org
- perlun/cslox (incomplete)
- richsoft/CsLox
- shasta9/nlox
- SirCxyrtyx/cslox
- stevehalliwell/ulox-work (Both Tree-Walking and ByteCode interpreter inside Unity Game Engine.)
- tslater2006/Gravlox
- NoahBPeterson/csLox (Interpreter with demo)
- Jay-Madden/SharpLox (Tree walking interpreter with minorly modified syntax)
- FrederikTobner/Kellox
- Monsoonexe/RazerLox
- jmj0502/LSharp (Tree-Walking interpreter for a Lox superset.)
- clrudolphi/dlrLox (Lox implemented on the .NET dynamic runtime)
- robinlant/loxsharp (Tree-Waliking interpreter without inheritance and with some challanges done in main branch )
- escobar-west/csLox (interpreter)
- raghavio/clojox
- ceronman/cloxure
- narimiran/cljox (interpreter)
- avrame/crylox
- dorianmariefr/crlox
- rebeccabuckingham/crystal-craftinginterpreters
- sauer2/crystalline-lox
- huynguyenau/lox-lang-crystal
- adeys/dlox
- rkirsling/dlox
- sma/lox
- BertrandBev/dlox bytecode VM with a neat little online playground
- definev/dlox
- jackdreilly/jlox
- ChessMax/dox
- roboli/lox_dart
- bru32/PLOX (scanner)
- MarceloMelo/TheLoxLanguage4Delphi (interpreter & bytecode)
- derekdogg/Lox_Scanner (bytecode)
- awvwgk/flox (interpreter)
- jmonasterio/flox_sharp_interpreter
- lust4life/lox-box/f# (interpreter)
- JulStrat/loxip (interpreter - work in progress)
- jdehaan2014/fplox (bytecode virtual machine)
- kirochk4/goloxx
- aliwalker/golox
- dabbertorres/golox
- goropikari/golox (interpreter)
- hutcho66/glox (interpreter with multiple additions)
- jfourkiotis/golox
- marcopacini/go-lox
- mohitranka/golox
- paulja/glox
- pravj/glox
- Roderland/glox (Interpreter)
- Shri333/golox (interpreter)
- nanmu42/bluelox (and an online playground in WASM)
- chidiwilliams/glox
- rami3l/golox (bytecode)
- michael-go/lox (interpreter, under golox/ folder)
- nickharrismcr/glox (bytecode with extensive language additions and raylib-go integration)
- ccntrq/loxomotive
- Thomas-Neill/hlox
- sudo97/hlox (tree-walk, no classes)
-
0rphee/xolsh (tree-walk, passes
jloxtest suite, with online playground.)
- GitLab:Natrium729/infolox (bytecode)
- AmrDeveloper/Tank
- BlinkLang/BlinkLang
- caique/jlox
- Dandigit/pl-projects/jlox
- fsacer/FailLang
- Geert-Guldentops/jlox
- JasperDre/JLox
- jbduncan/jlox
- lucaspolo/jlox
- nicdard/loxs
- paudsu01/JLox (Interpreter)
- perlun/jlox (incomplete)
- protasm/jblox (Java bytecode Lox compiler/interpreter)
- SayedHajaj/DrawLang (article)
- vighneshq/jlox
- Roderland/lox (Interpreter)
- Leonardpepa/jlox
- Return5/R5Jlox
- microsoftjava/java_lox
- mrjameshamilton/jlox (An optimizing Lox compiler for the JVM using ProGuardCORE for Java bytecode generation)
- AndreiMoraru123/jlox (vanilla Lox on master + challenges solutions/attempts on feature branches)
- sravand123/TinkerScript (interpreter with tons of new features)
- buenvyron/ci-jlox (scanner done)
- GitLab:Natrium729/lox.jl (interpreter)
- nathanleiby/jlox (interpreter)
- lukemerrick/JuLox.jl (interpreter)
- anellie/klox,
- DichotoMe/klox
- felipesabino/lox-kotlin,
- GraydenH/klox,
- itskola/lox-kotlin
- mhashim6/klox,
- pin3da/CraftingInterpreters (interpreter)
- Sharparam/klox,
- HallofFamer/ktlox,
- mrjameshamilton/klox (A Kotlin implementation of lox with a JVM backend built using ProGuardCORE)
- cybergrouch/klox
- montreal91/RLC (WIP, Lox -> JVM bytecode compiler written from scratch)
- yj-qin/moonlox (bytecode)
- cabhishek/nimlox
- nc-x/crafty
- nocturn9x/japl (bytecode)
- rockcavera/nim-nlox
- rockcavera/nim-nloxvm (bytecode)
- unfode/ocaml_lox
- blu-bird/bagol (interpreter - work in progress)
- ludwigpacifici/saumon
- samarthkishor/ocamlox (interpreter)
- tjammer/olox
- ldmnt/mlox (interpreter)
- edzdez/ml-lox
- OrigamiDev-Pete/odinlox (bytecode)
- Nrosa01/OdinLox (bytecode)
- Noahdyn/olox (bytecode)
- shettysach/Loxi (bytecode with a playground)
- Syuparn/onylox (interpreter)
- ccntrq/plox (incomplete)
- dnmfarrell/Perl-Lox (interpreter)
- UnixY2k/PSLox (interpreter)
- ramtinJ95/rj-pylox (Interpreter)
- ubermenchh/pylox
- FallenDeity/LoxInterpreter (inbuilt callables, new keywords, and lox native libraries)
- 1Hibiki1/locks-py
- yashrathi-git/loxscript
- BolunThompson/pylox
- Esamanoaz/plox (interpreter)
- iechevarria/pylox
- JHonaker/pylox
- kathleenbanawa/pylox
- kinshukk/pyterpreter
- kris-gaudel/py-lox (interpreter)
- mjx/pylox
- moreati/pylox
- MtScience/PyLox (interpreter, plus two new operators and a set of native functions)
- nkawaller/pylox (interpreter)
- nocturn9x/japl
- RoelAdriaans/yaplox
- selectnull/pylox
- ronsh909/pylox (interpreter)
- justnat3/pox
- mulhod/pylox
- brkp/pox
- ZhaoChuyang/plox (interpreter)
- ImAKappa/pylox
- BaLiKfromUA/pylox (tree-walk interpreter)
-
txloc1909/lox (tree-walk interpreter in
pylox/) - acinis/losos (WIP)
- HETHAT/LoxPy (interpreter)
- SamuelValentini/pylox (interpreter extended with fixed-size arrays)
- ostin-r/pylox (sans class inheritance, didn't do challenges at end of chapters)
-
HomoKubrickus/loxygen (strictly typed with a
pytestplugin for easily running the original tests)
- ArminKleinert/SlowLox,
- LevitatingBusinessMan/rulox (interpreter)
- perlun/cslox (Ruby conversion of the AstGenerator Java class from jlox),
-
Famished-tiger/loxxy (Passes
jloxtest suite and executeslox.loxflawlessly) - radanskoric/ruby_lox (Imitates Java code style and layout from the book to make it easier to follow along)
-
mdesantis/rlox (interpreter, passes
jloxtest suite)
- fampiyush/rlox (Tree-walk Interpreter)
- hln33/rlox (Tree-walk Interpreter)
- vortexofdoom/crafting-interpreters-rust
- YangchenYe323/lox
- aalhendi/loxiest (bytecode, clox parity)
- AaronStGeorge/cat-lox
- abesto/clox-rs (bytecode with a playground)
- abesto/jlox-rs (interpreter with a playground)
- adambiltcliffe/rlox (bytecode)
- ajeetdsouza/loxcraft (bytecode VM, REPL, language server, online playground)
- alisww/lax
- anellie/cloxrs (bytecode)
- brightly-salty/rox (interpreter)
- darksecond/lox (bytecode)
- Harmful-Alchemist/rilox (interpreter)
- HarveyHunt/loxr
- jaredh159/rlox (interpreter)
- jeschkies/lox-rs (interpreter)
- jonnyboyC/spacelox
- Lapz/rox
- LevitatingBusinessMan/Loxidation (bytecode)
- mariosangiorgio/rulox
- mayhewj/lox
- mchlrhw/loxide (interpreter)
- nt591/lox-rust (bytecode)
- radogost/rlox (interpreter)
- rafasumi/rustlox (interpreter)
- rctcwyvrn/rlox (bytecode)
- rodaine/rlox
-
rovjuvano/cloxrs (line-by-line port of clox to Rust with over 1500
unsafeblocks, 90%unsafefunctions) - sasurau4/lox-rust (interpreter)
- silmeth/yarli
- smbl64/lox (interpreter)
- toyboot4e/loxrs (interpreter)
- tdp2110/crafting-interpreters-rs (interpreter/bytecode)
- trevarj/roxt (interpreter/bytecode)
- yanchith/relox
- glella/lako
- ceronman/loxido (bytecode)
- rami3l/dolores (interpreter)
- diegofreijo/rlox-vm (bytecode)
- pdogr/lox-rs (interpreter)
- veera-sivarajan/bessy (bytecode with a playground)
- gaxx/rox (bytecode with some implementation notes with simplified chinese translation)
- mideb/loxjit (a simple JIT compiler for x64 using inline caches)
- tseeker/rust-crafting-interpreters-part-1 (interpreter)
- michael-go/lox (bytecode, under rslox/ folder)
- zackradisic/rust-vs-zig (bytecode)
- zhouxs1023/rslox (bytecode)
- woupiestek/rlox
- boranseckin/rocks (interpreter)
- sagark4/rlox_ast_walk (interpreter)
- ryotsu/rox (bytecode, with a web playground)
- fabianbinna/lox-r (interpreter)
- WiHceeg/rilox (interpreter)
- hahn324/lox_treewalk (tree-walk interpreter)
- hahn324/lox_bytecode_vm (bytecode)
- danieldidiobalsamo/lox_interpreter_rust (tree-walk interpreter)
- WenzeJin/rlox (tree-walk interpreter, will support list and map)
- zhjngli/rustlox (tree-walk interpreter)
- Cheshulko/Lox-interpreter-rs (interpreter)
- behai-nguyen/rlox (interpreter, including all author-provided test scripts)
- bencwallace/slox
- grokking-vietnam/grox (A functional, cross compiling Scala, ScalaJS interpreter)
- fighur/sclox
- alexito4/slox
- eirikvaa/slox
- danielctull/slox
- hashemi/bslox (bytecode)
- hashemi/slox
- heckj/slox
- SwampThingTom/swift-lox
- woolsweater/slox
- zlliang/tslox (interpreter)
- berkio3x/ferrous (interpreter)
- langium/langium-lox (interpreter with vscode extension)
- jeroenptrs/tslox
- quantomistro/lox.ts
- mtso/lox (tree-walk interpreter)
- golergka/ts-lox (tree-walk interpreter)
- williamsk91/tslox (interpreter)
- aadonkeyz/jslox (web playground)
- DavidTimms/loxdown (interpreter with static type system and web playground)
- chidiwilliams/loxjs (interpreter with web playground at chidiwilliams/lox-playground)
- alexkowalenko/alox (interpreter)
- jhonnatangomes/tsrabbit (interpreter)
- defpis/tslox (interpreter)
- woupiestek/tslox (both)
- danvk/gravlax (interpreter with currency support)
- bpetermann/ts-lox (interpreter)
- roboli/lox-ts
- liangyuanruo/tslox (interpreter)
- hussein-saad/tslox (tree-walk interpreter)
- jmonasterio/zlox_zig_interpreter
- jwmerrill/zig-lox (bytecode)
- raulgrell/zox (bytecode)
- nathanleiby/zlox (bytecode)
- zackradisic/rust-vs-zig (bytecode)
- tusharhero/zlox
- zlw/zlox (bytecode)
- tushyagupta81/interpreter-zig
- tumirnix/exla/zig-lox (bytecode)