cyber
cyber copied to clipboard
list of related projects (feel free to edit)
Interpreters
- https://github.com/FastVM/Web49 discussed here https://news.ycombinator.com/item?id=29850562 and https://github.com/FastVM/minivm-cc
- https://github.com/wasm3/wasm3
- dascript https://dascript.org/ (restricted io, no gc, statically typed, plans LLVM backend)
- ..
Fast JIT compilers.
- Dynasm (https://luajit.org/dynasm.html)
- luajit remake with deegen framework (technical blog post https://sillycross.github.io/2022/11/22/2022-11-22/)
- https://github.com/vnmakarov/mir
- B3 from JavascriptCore (https://webkit.org/docs/b3/)
- dascript
- blink has an interesting section on jitting + environment constrains. Not sure if user-provided instruction fine-tuning with graceful fallback would be useful + feasible or not
- ..
Notable mention (syntax etc)
- https://github.com/actonlang/acton/issues/180 not sure about provided performance, but stuff like https://www.acton-lang.org/learn/acton-by-example/actors/sync_method_call.html sounds interesting.
I tried to run paka, a language that uses minivm but ran into issues running fib.paka. Looks like paka might not have been updated in a while though.
Then I tried out wasm3, I assumed it would be faster but Cyber is 25% faster:
hyperfine 'cyber fib/fib.cy' 'wasm3 --func fib fib/fib32.wasm 30'
Benchmark 1: cyber fib/fib.cy
Time (mean ± σ): 41.2 ms ± 3.1 ms [User: 40.9 ms, System: 0.6 ms]
Range (min … max): 36.1 ms … 52.1 ms 55 runs
Benchmark 2: wasm3 --func fib fib/fib32.wasm 30
Time (mean ± σ): 52.7 ms ± 3.1 ms [User: 52.4 ms, System: 0.5 ms]
Range (min … max): 47.3 ms … 60.5 ms 50 runs
@shawsumma might be of interest to you.
Sharing Discord notes from Darek with some additions.
Production ready
- Luau - https://github.com/Roblox/luau - seems like a good alternative to Lua that fixes the biggest issues and is proven in production
- Teal - https://github.com/teal-language/tl - coupled with regular Lua distribution (Teal might be still too early though)
Embedded languages
- Wren - http://wren.io
- Lobster - http://strlen.com/lobster/
- Squirrel - http://squirrel-lang.org/ - old, was an interesting alternative to Lua, but kind of never took off (www.g5e.com uses it heavily in their games)
- Gravity - http://gravity-lang.org/
- Umka - https://github.com/vtereshkov/umka-lang
- daScript - https://github.com/GaijinEntertainment/daScript - Mainly focused on interop with C++. It's homepage has impressive benchmarks but when I tried running a simple fib example it was incredibly slow. Maybe it has some startup time issues.
- Ark - https://github.com/ArkScript-lang/Ark
Zig-based languages
- https://github.com/fubark/cyber
- https://github.com/MasterQ32/LoLa
- https://github.com/buzz-language/buzz
- https://github.com/Vexu/bog
- https://github.com/Luukdegram/luf
Rust-based languages
- Piccolo (Lua in Rust) - https://github.com/triplehex/piccolo
- Mun - https://mun-lang.org
- Rune - https://github.com/rune-rs/rune
- Koto - https://github.com/koto-lang/koto
- Diatom - https://github.com/diatom-lang/diatom
- Mica - https://github.com/mica-lang/mica
- Rhai - https://github.com/rhaiscript/rhai
- Ashfire/Firelang - https://github.com/LunaAmora/Ashfire
Compiled languages
- Zig - I think this might be the future for low level gamedev, author seems focused on getting the ugly basics right
- V - was promising, but they're very scattered, chasing every shiny new thing, rewriting everything in V, making their own GitHub (gitly), database (vsql), OS (vinix), UI, etc
- Odin
- Beef - https://github.com/beefytech/Beef
- Jai