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/
Download neva
command line application:
curl -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.sh | bash
Create test
project:
neva new test
Replace the code in test/src/main.neva
with the following:
component Main(start any) (stop any) {
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.
Please note that, due to the early stage of development, the documentation can sometimes be outdated. Please reach maintainer if you have questions.