nevalang / neva

🌊 Flow-based programming language with static types and implicit parallelism. Compiles to native code and Go

Home Page:https://nevalang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Big Header

Flow-Based Programming Language

tests lint

⚠️ Warning: This project is currently under heavy development and is not yet ready for production use.

Neva

A general-purpose flow-based programming language with static types and implicit parallelism. Compiles to machine code and Go.

Website: https://nevalang.org/

Quick Start

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

Features πŸš€

  • 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

Learn more about the language

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.

Roadmap (🚧 WIP)

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)

See backlog for more details

Nevalang needs your help - it currently has only one maintainer.

Community

Join community. Together we can change programming for the better:

Contributing

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.

About

🌊 Flow-based programming language with static types and implicit parallelism. Compiles to native code and Go

https://nevalang.org

License:MIT License


Languages

Language:Go 96.9%Language:ANTLR 1.3%Language:Makefile 0.8%Language:Shell 0.5%Language:Batchfile 0.4%