Chess API written in scala. Immutable and free of side effects.
783
stars
4,779
commits
Scala
primary language
Sep 10, 2026
updated
Chess API written in scala for lichess.org
It is entirely functional, immutable, and free of side effects.
Clone scalachess
git clone https://github.com/lichess-org/scalachess
Start sbt in scalachess directory
sbt
In the sbt shell, to compile scalachess, run
compile
To run the tests
testKit / test
To run full benchmarks (takes more than 1 hour to finish):
bench / Jmh / run
Or to output a json file
bench / Jmh / run -rf json
To run quick benchmarks (results may be inaccurate):
bench / Jmh / run -i 1 -wi 1 -f1
To run longer benchmarks:
bench / Jmh / run -i 3 -wi 2 -f2
To run benchmarks for a specific class:
bench / Jmh / run -rf json .*PlayBench.*
sbt prepare
For python code, install pipenv, and run $ pipenv install from project root.
build.sbt.gh release create X.Y.Z(top 30 of 63)
Scala
99.9%
Chess API written in scala. Immutable and free of side effects.
783
stars
4,779
commits
Scala
primary language
Sep 10, 2026
updated
Chess API written in scala for lichess.org
It is entirely functional, immutable, and free of side effects.
Clone scalachess
git clone https://github.com/lichess-org/scalachess
Start sbt in scalachess directory
sbt
In the sbt shell, to compile scalachess, run
compile
To run the tests
testKit / test
To run full benchmarks (takes more than 1 hour to finish):
bench / Jmh / run
Or to output a json file
bench / Jmh / run -rf json
To run quick benchmarks (results may be inaccurate):
bench / Jmh / run -i 1 -wi 1 -f1
To run longer benchmarks:
bench / Jmh / run -i 3 -wi 2 -f2
To run benchmarks for a specific class:
bench / Jmh / run -rf json .*PlayBench.*
sbt prepare
For python code, install pipenv, and run $ pipenv install from project root.
build.sbt.gh release create X.Y.Z(top 30 of 63)
Scala
99.9%