The Vampirc Project is a chess engine and chess library suite, written in Rust. It is named for the Slovenian grandmaster Vasja Pirc, and, I guess, vampires? I dunno.
Currently, the following libraries are available:
vampirc-uci is a Universal Chess Interface (UCI) protocol parser and serializer. The UCI protocol is a way for a chess engine to communicate with a chessboard GUI, such as Cute Chess. vampirc-uci uses the Pest parser to parse the UCI messages. The corresponding PEG grammar is available here.
A library for non-blocking asynchronous communication between processes, targeted especially at UCI protocol communication. Goes together with vampire-uci. Based on the Tokio framework.
Stay tuned for these upcoming releases and features:
Finishing the vampirc-io library will enable the engine to communicate with various chessboard GUIs, so that is Step 1 in bringing the engine online.
The first version will feature only a basic move search and will be downloadable. You'll be able to use it with any GUI with UCI-support. Later on, it will be made available for play directly from the website using WebAssembly.
Once the engine plays a decent game, a lichess.org communication interface will be developed (and released), so that the engine will play on lichess as a bot.
Depending on interest (both mine and yours, but probably especially yours), time, weather and other hobbies, I may write a book on how to write a chess engine. If you're interested, please let me know via this poll.
Questions? Comments?