Browse Source

Some sales pitch things

ag-yep
Taylor Bockman 7 years ago
parent
commit
d462ce8d11
  1. 12
      Cargo.toml
  2. 39
      README.md
  3. 7
      src/lib.rs

12
Cargo.toml

@ -0,0 +1,12 @@
[package]
name = "uci"
version = "0.1.0"
authors = ["Taylor Bockman <angrygoats@protonmail.com>"]
description = "An implementation of the UCI specification in Rust"
repository = "https://github.com/angrygoats/uci"
readme = "README.md"
keywords = ["uci", "universal chess interface", "chess", "engine", "chess engine"]
categories = ["games", "game-engines", "api-bindings", "config", "development-tools"]
license = "GPL-3.0"
[dependencies]

39
README.md

@ -1,2 +1,37 @@
# uci
An implementation of the Universal Chess Interface in Rust
# UCI
UCI is an acronym for **U**niversal **C**hess **I**nterface. It is a standard for communication that competes with
XBoard/Winboard. [http://wbec-ridderkerk.nl/html/UCIProtocol.html](UCI) makes communication a little easier, but
it seems there's a nearly religious debate on which is better.
Here are some benefits to using UCI:
* It works with Chessbase 14
* Simple to use
* Fewer bugs in code
* Built from scratch rather than ad-hoc
* Flexible time controls
* Additional search information can be displayed
and to be fair, some downsides:
* Stateless
* Delegates some important decisions to the GUI
* Difficult to add new features on top of it
* Sends the whole move list each turn
Overall, UCI seems to be fairly popular and is worth considering for your next engine.
## Why
People shouldn't waste their time implementing protocols that really should be libraries. With this, you can
include it in your project, build your engine on top of it, and be able to focus on what matters - beating Stockfish.
## Will You Implement Winboard?
Yeah, probably.
## Why GPL 3.0?
I have noticed that there are no good _free_ solutions so that anyone can build a chess engine. Since UCI is
a common format, and something all engines (should) implement, making this chunk of it free makes _total_ sense.

7
src/lib.rs

@ -0,0 +1,7 @@
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}
Loading…
Cancel
Save