Awesome
<!-- markdownlint-disable MD033 --> <!-- markdownlint-disable MD041 --> <img align="left" width="96px" height="96px" src="https://hexalang.github.io/favicon/apple-icon.png" /> <!-- markdownlint-enable MD041 --> <!-- markdownlint-enable MD033 -->Hexa
Her name is [Geksa]
Hexa is a high level, strictly typed programming language that compiles to JavaScript and native apps
Key features of Hexa
- JavaScript-inspired syntax and behavior, feel yourself like at home!
- Native performance with static types and optimizing compiler
- Follows node.js (and browser) API
- Fast compilation
- Compiles to JavaScript, WebAssembly, osdev, LLVM, C, C++, ObjC, ... you name it! (WIP)
- Transpilation to almost anything: Lua, AutoCAD Lisp, C#, PHP, etc (WIP)
- Produces human-readable code for all targets
- Null safety, crash resistance, pattern matching, classes (WIP)
- Real multithreading, parallelism, async\await, no GC (WIP)
- Smart type inference makes other typed languages look boring
- Friendly and helpful error messages
- Supports
#!shebang
and scripting (just callhexa script.hexa
) - REPL (enable with just
hexa
command) - Metaprogramming with syntax-tree, generics and contracts (WIP)
- Completely cross-platform
- We are working on optional memory ownership model (similar to borrow checker) and side effects system (WIP)
WIP — Work in progress, coming soon
Download
kawaii
is the development branch and accepts pull requestsartifacts
are built from each kawaii branch commit
Stable
Unstable
Tools & IDE
- Visual Studio Code / VSCode — hexalang/hexa-vscode-bundle is the best supported IDE plugin right now!
- Sublime Text 3 — hexalang/hexa-sublime-bundle
- Atom — hexalang/hexa-atom-bundle
- Package manager — hexalang/packages
AI Autocomplete
Install Codeium then open .hexa
file and confirm experimental Hexa support.
Study
- Follow progress
- Sources of inspiration
- Getting started guide for beginners
- Some code examples
- Comparison with other languages for experienced developers
- Why Hexa?
- Contribute your compilation target
Build
You need to download latest long-term Node.js LTS. The Hexa Compiler is written in Hexa itself. Pre-built compiler (bootstrapper) already included in the repo.
git clone --recursive --depth 100 https://github.com/hexalang/Hexa.git
cd Hexa
node bootstrap.js hexa.json
node hexa-node.js hexa.json
# This results in a `hexa-node.js` file in the root of the repo
# Call `node hexa-node.js project.json` to build your projects
You may now add the folder into your PATH.
Learn more about compiler development
License
See LICENSE files for full license texts and headers of each file (files in same directory may use different licensing models). If license is not mentioned in header then LICENSE file in upper directory level to be considered.
Compiler and some tools are under Lesser GPL 3.0 (feel free to include as a library in closed source projects), standard libraries and examples are under MIT.