A go open-source engine powered by rust
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
Seki go engine
A pure-Rust, no-std-ready Go (Weiqi/Baduk) engine designed as a reusable library for 19 × 19 (and smaller) boards.
Clean API · Zero unnecessary dependencies · Fully tested · Target to be easily embeddable in CLI/TUI/GUI/Web.
| CI | |
| Crate | |
| Docs | |
| License | MIT |
Features
- Idiomatic Rust API – ergonomic types (
Coord,State,Move) with zero-cost abstractions. - Pluggable rulesets – Japanese (default) & Chinese rules behind feature-flags.
- Bit-board core – fast group detection, incremental Zobrist hashing, no
unsafeby default. - SGF I/O – read/write SGF v4 files (optional).
- no-std support – opt-in via
--no-default-features. - Criterion benches & ≥ 80 % coverage baked into CI pipeline.
Installation (to be planned)
# Engine only (library)
cargo add seki
# Engine workspace (clone with CLI & benches)
git clone https://github.com/your-org/go-engine && cd go-engine
Quick Start (to be planned)
use seki::prelude::*;
fn main() -> Result<(), GoError> {
// Japanese rules on a standard 19×19 board
let mut game = State::new_japanese(BoardSize::N19);
game.play(Coord::try_from("D4")?)?; // black stone
game.play(Coord::try_from("Q16")?)?; // white stone
println!("{}", game.board()); // ASCII snapshot
Ok(())
}