LingDong-/wax
FreeA tiny programming language that transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly 🚀
About LingDong-/wax
Wax is a tiny, experimental programming language designed to transpile seamlessly to multiple major imperative languages, including C, C++, Java, TypeScript, Python, C#, Swift, Lua, and WebAssembly. It aims to be a common subset of these languages, avoiding unique fancy features to achieve readable, editable, and integrable output code that looks like handwritten code in the target language. The syntax is inspired by WebAssembly Text Format (wat) and uses S-expressions reminiscent of Lisp but with an imperative, C-like design. Wax is strongly statically typed and has built-in support for arrays, hashtables, structs, and C-like macros. It provides an online playground for experimentation. As an experimental project, it may contain bugs and areas for improvement.
Key Features
Pros & Cons
- Transpiles to a wide range of popular languages including WebAssembly
- Output code is readable, editable, and integrable as native libraries
- Simple, consistent S-expression syntax that maps directly to ASTs
- Strong static typing and built-in data structures (arrays, hashtables, structs)
- Open source and free to use
- Active GitHub repository with community contributions welcome
- Experimental — may contain bugs and is not recommended for production use
- Missing advanced features found in individual target languages (e.g., classes, async/await, generics)
- Syntax (S-expressions) may feel unfamiliar to developers used to C-like syntax
- Limited ecosystem and documentation outside of the GitHub repository
- Not well-known or widely adopted compared to established transpilers like Haxe