A chess engine and library suite, written in Rust.


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:


Repo github Travis CI build status 0.8.0 Downloads from crates.io Documentation Status License

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.


Repo github License WIP

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.

Future plans

Stay tuned for these upcoming releases and features:

vampirc-io release

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.

release the first version of the engine

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?