Released Tuesday, September 10, 2024.
- Update to Stockfish 17.
- See new recommended NNUE files EvalFile and EvalFileSmall
- Update to LeelaChessZero 0.31.1.
Engine.type
is now exposed publicly.
Released Monday, April 22, 2024.
- Fix issue where engine responses containing a newline character would not be parsed correctly.
Released Monday, April 22, 2024.
- Update to Stockfish 16.1.
⚠️ Stockfish now requiresEvalFile
andEvalFileSmall
options to be set after launch, with a path to the*.nnue
files provided.- Currently
chesskit-engine
assumesnn-baff1ede1f90.nnue
,nn-b1a57edbea57.nnue
are available in your app'sBundle.main
. - Click the file names in the previous line to access the download pages.
- Any other files can be added via
.setoption(id:value:)
engine commands.
- Update to LeelaChessZero 0.30.
⚠️ Lc0 requiresWeightsFile
options to be set after launch, with a path to a neural network file provided.- Currently
chesskit-engine
assumes192x15_network
is available in your app'sBundle.main
. - Network files can be downloaded from lczero.org.
- Any other files can be added via
.setoption(id:value:)
engine commands. - Currently there are some performance issues using
lc0
in an app; this is being investigated but any contributions (via PRs or issues) are appreciated.
Engine.start()
now takes acompletion
handler.- This is called once the engine has finished initializing.
- Engine commands (i.e. setting options or requesting evaluations) should not be sent until this completion handler is called.
EngineMessenger
now sends commands to the engines viastdin
, see Issue #11.- This will allow for much simpler upgrades to existing engines, as well as the inclusion of new engines in the future.
- Special thanks @dehlen.
Released Wednesday, March 27, 2024.
- Add background engine processing for better performance.
- Remove neural network resource files for greatly reduced package size.
- These can be added manually by bundling the desired files and setting the appropriate engine to use them (see
Resources
directory). - For
Stockfish 15.1
(nn-1337b1adec5b.nnue
):engine.send(command: .setoption(id: "EvalFile", value: evalFileURL)) engine.send(command: .setoption(id: "Use NNUE", value: "true"))
- For
LeelaChessZero 0.29
(192x15_network
):engine.send(command: .setoption(id: "WeightsFile", value: weightsFileURL))
- These can be added manually by bundling the desired files and setting the appropriate engine to use them (see
Released Thursday, May 18, 2023.
- Replaced submodule URLs with HTTPS instead of SSH
Released Friday, April 28, 2023.
- Removed unsafe flags from
Package.swift
Released Wednesday, April 26, 2023.
- Add
LeelaChessZero (lc0)
engine- Currently comes bundled with a neural network weights file
192x15_network
- Currently comes bundled with a neural network weights file
Engine
initializer no longer has a defaultengineType
(previously.stockfish
)- Type must be specified using
Engine(type: <engine type>)
- Type must be specified using
- Add Stockfish
EvalFile
as Swift package resource
Released Saturday, April 15, 2023.
- Add default
nil
value forvalue
parameter inEngineCommand.setoption(id:value:)
- Fix
loggingEnabled
default value to match documentation - Fix
EngineCommand.PositionString(rawValue:)
when passing a FEN string
- Simplify internal Obj-C and C++ targets
- Increase test coverage
Released Friday, April 14, 2023.
- Hide internal Obj-C and C++ targets
- Created separate Swift and Obj-C
EngineType
enums - Package user should only need to import
ChessKitEngine
now
- Created separate Swift and Obj-C
Released Friday, April 14, 2023.
- Fix build issue related to missing
ChessKitEngine_Cxx
target
Released Friday, April 14, 2023.
- Initial release