A general-purpose dataflow programming language with static types and implicit parallelism. Compiles to machine code and Go.
- Dataflow programming
- Implicit parallelism
- Compiles to machine code and Go
- Garbage collection
- Strong static typing
- Clean C-like syntax
- ...And more!
⚠️ This project is currently under heavy development and is not yet ready for production use.
For Mac OS and Linux:
curl -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.sh | bash
If your device is connected to a chinese network:
curl -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/cnina/install.sh | bash
For Windows (see issue with Windows Defender, try manual download from releases if installation won't work):
curl -o installer.bat -sSL https://raw.githubusercontent.com/nevalang/neva/main/scripts/install.bat && installer.bat
First, use Neva CLI to create a project template
neva new my_awesome_project
Then run it
neva run my_awesome_project/src
You should see the following output
Hello, World!
If you open my_awesome_project/src/main.neva
with your favorite IDE you'll see this
def Main(start) (stop) {
Println
---
:start -> { 'Hello, World!' -> println -> :stop }
}
The Main
component has start
inport and stop
outport, with a println
node (instance of stdlib's Println
). The network after ---
shows: on start
message, "Hello, World!"
is sent to println
, then program terminates via stop
signal.
Nevalang is in its early stages, but community support can help it grow into a mature, feature-rich language.
- Grow community and improve docs
- Expand stdlib (including test-framework)
- Better syntax and more features
- Enhance developer experience (lsp, debugger, etc)
- Implement Go interoperability (call Go from Neva and vice versa)
- Enable visual programming in VSCode
We seek contributors to join our small team.
Join our community and help shape the future of programming:
Also please check our CoC.
See CONTRIBUTING.md and ARCHITECTURE.md.