Skip to content

nmrugg/stockfish.js

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
July 24, 2023 16:44
July 24, 2023 16:11
src
July 24, 2023 16:43
October 19, 2017 11:26
November 12, 2021 16:39
November 10, 2020 11:33
July 24, 2023 17:06
October 19, 2017 11:26
July 24, 2023 17:06
July 24, 2023 16:11
March 9, 2015 14:40
October 19, 2017 11:26
July 24, 2023 16:31
May 10, 2022 11:06

Stockfish.js

Stockfish.js is a WASM implementation of Stockfish chess engine.

Stockfish.js is currently updated to Stockfish 16.

This edition of Stockfish.js comes in four flavors.

  • The full mult-threaded engine:
    • This is best version of the engine but will only run in new browsers with the proper CORS headers applied.
    • Files: stockfish-nnue-16.js & stockfish-nnue-16.wasm
  • The single-threaded engine:
    • This will run in most browsers but is not as responsive as the multi-threaded version.
    • Files: stockfish-nnue-16-single.js & stockfish-nnue-16-single.wasm
  • The mult-threaded non-SIMD engine:
    • Requires CORS headers but will run on older browsers that do not support SIMD (such as older Safari):
    • Files: stockfish-nnue-16-no-simd.js & stockfish-nnue-16-no-simd.wasm
  • The mult-threaded non-nested worker:
    • Designed specifically to workaround a bug in Chrome 109. Requires CORS headers.
    • Files: stockfish-nnue-16-no-Worker.js & stockfish-nnue-16-no-Worker.wasm

For older WASM engines or a pure ASM.JS engine, see the Stockfish.js 11 branch.

API

You can run Stockfish.js directly from the command line with Node.js 14.4+. You may need to add some command line flags to get it to run:

node src/stockfish.js

Stockfish.js can be found in the npm repository and installed like this: npm install stockfish.

If you want to use it from the command line, you may want to simply install it globally: npm install -g stockfish. Then you can simply run stockfishjs.

In Node.js, you can either run it directly from the command line (i.e., node src/stockfish.js) or require() it as a module (i.e., var stockfish = require("stockfish");).

Compiling

You need to have the emscripten compiler installed and in your path (tested with 2.0.26). Then you can compile Stockfish.js with the build script: ./build.js. See ./build.js --help for details.

Example

There are examples in the example folder. You will need to run the example/server.js server to view the client-side examples.

There are also example using Node.js.

Thanks

License

GPLv3 (see license.txt)