Last updated:
0 purchases
flutter stockfish plugin
flutter_stockfish_plugin #
A Flutter plugin for the Stockfish Chess engine.
The current version is based on Stockfish 16.
Usage #
final stockfish = new Stockfish()
// Listen on stdout of Stockfish engine
final stockfishSubscription = stockfish.stdout.listen((line) {
print("received: $line");
});
// Sending UCI command to get Stockfish ready
stockfish.stdin = 'isready'
stockfish.stdin = 'position startpos moves e2e4' // set up start position
stockfish.stdin = 'go depth 20' // search bestmove with a max septh of 20
// Don't remember to dispose Stockfish when you're done.
// Make shure to dispose Stockfish when closing the app. May use WindowListener.
stockfishSubscription.cancel();
stockfish.dispose();
copied to clipboard
A complete Example can be found at stockfish_chess_engine.
Web support #
Web support is currently experimental and requires manuly adding assets. It uses a version of stockfish compiled with emscripten.
Usage:
Install emscripten and set the the Environment-Variable EMSDK
Build the CMakeLists.txt in web/
Copy the following files to web/stockfish/ in your project:
flutter_stockfish_plugin.js
flutter_stockfish_plugin.wasm
flutter_stockfish_plugin.worker.js
js_bindings.js
stockfish_data.bin
If a different path should be used: Change the path const's in js_bindungs.js and stockfish_web_bindings.dart
In order to make multithreading available, the site must run in a secure environment.
The following headers must be set for this:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Problems:
The current version does not include the .js, .wasm and neuralnetwork data as assets.
This files will not be bundles automaticly on the web.
Goal of this fork of stockfish_chess_engine #
Avoid limitation. This version does not redirect stdout and stdin of the app for communication with stockfish.
stdin and stdout were replaced with a fakestream element.
Stockfish internal logging might not work (could be fixed).
Credits #
Based on and using source code from stockfish_chess_engine
Using source code from Stockfish.
Using source code from Flutter Stockfish.
Directory src/Stockfish contains the latest current release.
The code is modified to use a different communication interface.
The original license for Stockfish can be found in their GitHub repository.
Directory web/ may contains code compiled from emscripten. Emscripten is licensed among others under the MIT License. License Page
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.