Awesome
Neptune Lang
Neptune is a dynamically typed scripting language
Goals
- Embeddability: It can be embedded in any rust application. Synchronous or asynchronous rust functions can be used by a neptune script.
- Performance: It performs better than most interpreted(JITless) scripting languages. See Benchmarks for a comparison with lua, luajit, nodejs and ruby.
- Security: It is impossible to do any kind of undefined behaviour(including integer overflow)
- Concurrency
- It is trivial to write asynchronous code
- An error in a task does not always terminate the whole application and can be handled gracefully.
- There are no function colors.
- Small implementation
Features
- Iterators
- String Interpolation
- Modules
- Optional semicolons
- UTF-8 strings
- and much more...
Getting Started
The CLI be installed by the command given below. You must have the rust compiler and a C++ compiler. The C++ compiler can be set using the CXX environment variable. Clang is recommended for best performance.
cargo install neptune-cli
At the moment the CLI has a few basic functions and a REPL. The REPL supports multiline entries and the following shortcuts.
Command | Description |
---|---|
Ctrl-L | Clear the screen |
Ctrl-C | Interrupt/Cancel editing |
Ctrl-D | Quit REPL |
Up arrow | Previous history entry |
Down arrow | Next history entry |
To embed it in rust you can use the library from crates.io.
Todo
- CLI - Standard library, external modules
- Preemptiveness?
- Buffer type