Flow-Based Programming Language
⚠️ Warning: This project is currently under heavy development and is not yet ready for production use.
A general-purpose flow-based programming language with static types and implicit parallelism. Compiles to machine code and Go.
Website: https://nevalang.org/
For Mac OS and Linux:
curl -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.sh | bash
if you device connected to China network:
curl -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.sh | bash
For Windows (please note there's an WIP issue with Windows Defender, try manual download from releases if installed won't work):
curl -o installer.bat -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.bat && installer.bat
neva new test
cd test
Replace the code in src/main.neva
with the following:
component Main(start) (stop) {
nodes { Printer<string> }
net {
:start -> ('Hello, World!' -> printer:data)
printer:sig -> :stop
}
}
Now run (make sure you are in created test
directory with neva.yml
):
neva run src
You should see the following output:
Hello, World!
Learn how to generate native code or Go
- Flow-Based Programming
- Implicit Parallelism
- Strong Static Typing
- Multi-Target Compilation
- Clean C-like Syntax
- Interpreter Mode
- Builtin Dependency Injection
- Builtin Observability
- Package Management
- Garbage Collection
Please note that even though these features are technically implemented, developer-experience may be bad due to current project state. No backward-compatibility guarantees at the time.
Nevalang is at an extremely early stage but with the help of community it can become a feature-rich, mature language.
- Building a Community
- Core Standard Library
- Feature-Rich LSP-compatible Language Server
- Go Interop (import go from neva and neva from go)
- DAP-compatible Debugger
- Testing Framework
- No Runtime Exceptions (If it runs then it works)
- Visual Programming in VSCode (Nevalang becomes hybrid langauge)
Nevalang needs your help - it currently has only one maintainer.
Join community. Together we can change programming for the better:
See CONTRIBUTING.md and ARCHITECTURE.md.
Neva is a relatively small and simple language compared to many other statically typed compiled languages out there. Don't be intimidated, feel free to dive in and hack around!
Please note that, due to the early stage of development, the documentation can sometimes be outdated. Please reach maintainer if you have questions.