C++ GPL-3.0

stockfish.js

The strong open source chess engine Stockfish compiled to JavaScript and WebAssembly using Emscripten

L

lichess-org

Dernière activité 8 févr. 2026
lichess-org/stockfish.js

258

étoiles

39

forks

1

issues ouvertes

chessemscriptenlichessstockfishwebassembly

Ce README est souvent en anglais.

stockfish.js

The strong open source chess engine Stockfish compiled to JavaScript and WebAssembly using Emscripten. See it in action for local computer analysis on lichess.org.

npm Passively maintained

Important

Maintained with bugfixes to keep supporting older browsers, but active development is happening on https://github.com/lichess-org/stockfish-web

Releases

About 1.4MB uncompressed, 250 KB gzipped.

Building

Install Emscripten and uglifyjs, then:

./build.sh

Or using Docker:

docker run --user $(id -u):$(id -g) --volume $(pwd):/home/builder/stockfish.js:rw niklasf/emscripten-for-stockfish

Usage

var wasmSupported = typeof WebAssembly === 'object' && WebAssembly.validate(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));

var stockfish = new Worker(wasmSupported ? 'stockfish.wasm.js' : 'stockfish.js');

stockfish.addEventListener('message', function (e) {
  console.log(e.data);
});

stockfish.postMessage('uci');

Changes to original Stockfish

  • Expose as web worker.
  • Web workers are inherently single threaded. Limit to one thread.
  • Break down main iterative deepening loop to allow interrupting search.
  • Limit total memory to 32 MB.
  • Disable Syzygy tablebases.
  • Disable benchmark.

Acknowledgements

Thanks to @nmrugg for doing the same thing with Stockfish 6, to @ddugovic for his multi-variant Stockfish fork and to the Stockfish team for ... Stockfish.

Projets similaires

WebAssembly port of the strong chess engine Stockfish

C++chessemscriptenlichess
Llichess-org
345 étoiles66

The Stockfish chess engine for web browsers

C++
Nnmrugg
1,2 k étoiles167

A free and strong UCI chess engine

C++chesschess-enginecpp
Oofficial-stockfish
16,8 k étoiles3 k