jinko
jinko
is a small and safe interpreted language written in Rust, with integrated
unit tests, mocking and FFI.
While jinko
can't do a whole lot right now, it's growing fast! You can look
at the roadmap in order to get an idea of what is in and what isn't.
Most of the syntax is implemented at this point, but might not yet produce
valid or convincing results.
Feel free to open an issue in order to get more information about the language or its usage!
Community
Feel free to come and chat about jinko on matrix!
Programming in jinko
The standard library is currently very small! It implements basic utilites such as an optional type or a string library.
Pull requests aiming at enhancing the stdlib are very welcome!
Installation
Installing from the release page
- Download a release tarball from the releases page
- Extract it somewhere temporarily:
tar xzf jinko-vx.x.x.tar.gz
You can even use /tmp/
or any directory that you'll remove later. Every important file
will be copied to its proper location.
- Run
./install.sh
This will create a.jinko
folder in your home directory, in which the binary and libraries will get installed.
Installing from source
- Simply run
./install.sh
This will compile the interpreter in release mode and install it. A.jinko
folder will be created in your home directory, in which the binary and libraries will get installed.
Do not forget to add $HOME/.jinko/bins
to your path! This will enable you to launch
jinko
from anywhere.
While jinko
is not yet available through various distribution package managers, we'd
love to have this!
Running
Launch the REPL using jinko
or run a file using jinko <file>
!
You can use various command line options. They are available when running jinko -h
Contributing
Feel free to submit any observations, bug reports or questions as an issue
Checkout CONTRIBUTING.mdif you'd like to write some code!
The code is organized according to the structure defined in ARCHITECTURE.md.
I am open to mentoring requests and would love to assist you in getting started on the language.
Testing
To test jinko, simply run cargo test && ./tests/func_tests.sh
. Note that in
order to run functional tests, you need to have ft installed
Requirements
- If a function does not return
void
, its return value should always be used. - Variables are immutable by default.
- Tests should be an integral part of the language
- This includes unit testing
- This includes mocking
- The language must be simple
Check out jinko's syntax!
For more information about how jinko is made, check out its design.
Thanks to
License
Licensed under GNU General Public License, version 2