Install a stable version of janet from the releases page. Janet is prebuilt for a few systems, but if you want to develop janet, run janet on a non-x86 system, or get the latest, you must build janet from source. Janet is in alpha and may change in backwards incompatible ways.
If you would like the latest version of Janet, are trying to run Janet on a platform that is not macos or Windows, or would like to help develop Janet, you can build janet from source. Janet only uses Make and batch files to compile on Posix and windows respectively. To configure janet, edit the header file src/include/janet/janet.h before compilation.
On most platforms, use Make to build janet. The resulting binary will be in
cd somewhere/my/projects/janet make make test
After building, run
make install to install the janet binary and libs.
Will install in
/usr/local by default, see the Makefile to customize.
It's also recommended to set the
JANET_PATH variable in your profile.
This is where janet will look for imported libraries after the current directory.
FreeBSD build instructions are the same as the unix-like build instuctions,
but you need
gcc to compile.
cd somewhere/my/projects/janet gmake CC=gcc gmake test CC=gcc
build_winto compile janet.
build_win testto make sure everything is working.
To build janet for the web via Emscripten, make sure you
emcc installed and on your path. On a linux or macOS system, use
make emscripten to build
janet.wasm - both are needed to run janet in a browser or in node.
but really serves mainly as a proof of concept. Janet will run slower in a browser.
Building with emscripten on windows is currently unsupported.
Following tradition, a simple Janet program will print "Hello, world!".
(print "Hello, world!")
Put the following code in a file named
hello.janet, and run
The words "Hello, world!" should be printed to the console, and then the program
should immediately exit. You now have a working janet program!
Alternatively, run the program
janet without any arguments to enter a REPL,
or read eval print loop. This is a mode where Janet works like a calculator,
reading some input from the user, evaluating it, and printing out the result, all
in an infinite loop. This is a useful mode for exploring or prototyping in Janet.
This hello world program is about the simplest program one can write, and consists of only
a few pieces of syntax. This first element is the
Like all lisps, all operations in Janet are in prefix notation; the name of the operator is the first value in the tuple, and the arguments passed to it are in the rest of the tuple.
Janet has a built in core library of over 300 functions and macros at the time of writing. For efficient programming in Janet, it is good to be able to make use of many of these functions.
If at any time you want to see short documentation on
a binding, Use the
doc macro to view the documentation for it in the REPL.
(doc defn) # -> Prints the documentation for "defn"
To see a list of all global functions in the REPL, type the command
Which will print out every global binding in the janet REPL. You can also browse the Core Library API on the website.