ArkScript is a small, fast, functional and scripting language for C++ projects
ArkScript is a small, fast, functional and scripting language for C++ projects
Note: the project is referred as "Ark" and as "ArkScript". The official public name is "ArkScript" since "Ark" is already being used by another language
ArkScript is
Also, it has:
lib/std/) and C++ (under lib/modules/)…bash
git clone --depth=50 --branch=dev https://github.com/ArkScript-lang/Ark.git cd Ark git submodule update --init --recursive
cmake . -Bbuild -DCMAKE_BUILD_TYPE=Release -DARK_BUILD_EXE=On cmake --build build --config Release
cmake --install build --config Release
Desired output of `arkscript --help`:
DESCRIPTION ArkScript programming language
SYNOPSIS
arkscript -h
arkscript -v
arkscript --dev-info
arkscript -e
arkscript [-d] [-L ] [-f(importsolver|no-importsolver)]
[-f(macroprocessor|no-macroprocessor)] [-f(optimizer|no-optimizer)]
[-f(irinliner|no-irinliner)] [-f(iroptimizer|no-iroptimizer)] [-fdebugger]
[-fdump-ir] [-fno-cache] -c [--stats]
arkscript [-d] [-L ] [-f(importsolver|no-importsolver)]
[-f(macroprocessor|no-macroprocessor)] [-f(optimizer|no-optimizer)]
[-f(irinliner|no-irinliner)] [-f(iroptimizer|no-iroptimizer)] [-fdebugger]
[-fdump-ir] [-fno-cache]
arkscript -f [--(dry-run|check)]
arkscript [-d] [-L ] --ast
arkscript -bcr -on
arkscript -bcr -a [-s ]
arkscript -bcr -st [-s ]
arkscript -bcr -vt [-s ]
arkscript -bcr [-cs] [-p ] [-s ] OPTIONS -h, --help Display this message -v, --version Display ArkScript version and exit --dev-info Display development information and exit -e, --eval Evaluate ArkScript expression -d, --debug... Increase debug level (default: 0)
-L, --lib Set the location of the ArkScript standard library. Paths can be
delimited by ';'
-f(importsolver|no-importsolver)
Toggle on and off the import solver pass
-f(macroprocessor|no-macroprocessor)
Toggle on and off the macro processor pass
-f(optimizer|no-optimizer) Toggle on and off the optimizer pass
-f(irinliner|no-irinliner) Toggle on and off the IR inliner pass
-f(iroptimizer|no-iroptimizer)
Toggle on and off the IR optimizer pass
-fdebugger Turn on the debugger
-fdump-ir Dump IR to file.ark.ir
-fno-cache Disable the bytecode cache creation
-c, --compile Compile the given program to bytecode, but do not run
If file is -, it reads code from stdin
--stats Gather stats about each compiler pass and print them to stdout
-f, --format Format the given source file in place
--dry-run Do not modify the file, only print out the changes
--check Check if a file formating is correctly, without modifying it.
Return 1 if formating is needed, 0 otherwise
-d, --debug... Increase debug level (default: 0)
-L, --lib Set the location of the ArkScript standard library. Paths can be
delimited by ';'
--ast Compile the given program and output its AST as JSON to stdout
-bcr, --bytecode-reader Launch the bytecode reader
.arkc bytecode file or .ark source file that will be compiled
first
-on, --only-names Display only the bytecode segments names and sizes
-a, --all Display all the bytecode segments (default)
-st, --symbols Display only the symbols table
-vt, --values Display only the values table
-cs, --code Display only the code segments
-p, --page Set the bytecode reader code segment to display
-s, --slice Select a slice of instructions in the bytecodeVERSION 4.7.2-28c5a9e6
BUILD DATE 2026-09-04T18:22:01Z
LICENSE Mozilla Public License 2.0
### In your own project
Please refer to the [embedding ArkScript](https://arkscript-lang.dev/docs/tutorials/embedding/) tutorial.
## Performances
See https://arkscript-lang.dev/tools/benchmarks/
## The sponsors
Huge thanks to those people for their donations to support the project:
* TheCountVEVO
* [llexto](https://github.com/llexto)
* COUR Eloïse
* [AKPINAR Dylan](https://github.com/DylanAkp)
* [Ryan C. Gordon](https://icculus.org) through his [2022 Microgrant](https://web.archive.org/web/20220608150846/https://twitter.com/icculus/status/1534552918317318144)
## Credits
This project was inspired by [game programing patterns](http://gameprogrammingpatterns.com/bytecode.html) and [anthay/Lisp90](https://github.com/anthay/Lisp90)
## Copyright and Licence information
Copyright © 2019-2026 Lexy Plateau. All rights reserved.
### Using ArkScript in your company
I (Lexy Plateau) am working pretty much alone on this project, and I try to do my best to leave it as bug free and as performant as possible. However, this is a side project for which I'm currently **not paid** to work on, thus I can't fix every bug or address every feature request in a timely manner.
Please reach out either by email ([email protected]) or via a [discussion](https://github.com/orgs/ArkScript-lang/discussions) before using the language in a company project, so that we can set up a support contract. If you don't want to set up a contract, your issues and support requests won't be prioritised (and possibly left unanswered).No open issues yet, or sync has not completed.