lichess-org / scalachess

Chess API written in scala. Immutable and free of side effects.
https://lichess.org
MIT License
667 stars 206 forks source link
bitboard bitboard-datastructure chess functional-programming lichess scala-3

Continuous Integration

Chess API written in scala for lichess.org

It is entirely functional, immutable, and free of side effects.

INSTALL

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 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 -t1

To run benchmarks for a specific class:

bench / Jmh / run -rf json .*PlayBench.*

To run scalafmt and scalafix:

sbt prepare

Install (python)

For python code, install pipenv, and run $ pipenv install from project root.