CSR is the runtime of JASM bytecode. The purpose of CSR is to give life to JASM bytecode and make it useful. After all, a bytecode that can't be run doesn't really mean anything. In addition, the future plans for this project includes adding JIT compilation support for JASM bytecode.
CSR is a part of CSLB project. The CSLB project (which stands for Common Scripting Language Backend, pronunced as SeezleBee) consists of three parts: Assembler, Linker and Runtime. The runtime part is CSR itself, as can be understood from the name. The assembler and linker make up JASM and it has its own repo.
NOTE: FlatVM is the currently in progress VM type and is the only supported one. If you want to use the other VM under bytemode/structured/ I can't guarantee that it'll work with the existing JASM.
You can either grab the compiled binaries from the release section (if there is any), or build CSR from source. I recommend building from source since it's pretty easy.
See BUILD.md
Here is the helper text from the current version of CSR:
Common Script Runtime (CSR)
Description: Common Script Runtime for JASM Bytecode
Version: 0.2.1
Enable JIT: Unavailable
Available Flags:
--help , -h : Print this help text.
--version , -v : Print version.
--no-new , -n : Do not create a new instance of CSR, use an already running one.
--no-strict-messages , -nsm : Don't strictly verify messages in each checkpoint when dispatching.
--exe <..params..>, -e : Executable files to execute.
--unsafe , -u : Load extender dll of each executable.
--step , -s : Run the VM once every input.
If you want to know more about how CSR works you can start by reading the docs
The licenses, readmes and citations for every library used lies within its own directory
under lib.