A go open-source engine powered by rust
Find a file
2025-08-23 02:17:32 +02:00
src feat : migration to forgejo 2025-08-23 02:17:32 +02:00
.gitignore chore : rust inti 2025-08-05 06:06:19 +02:00
Cargo.lock chore : rust inti 2025-08-05 06:06:19 +02:00
Cargo.toml chore : rust inti 2025-08-05 06:06:19 +02:00
LICENSE Initial commit 2025-08-05 05:59:25 +02:00
README.md chore : Readme added 2025-08-05 06:14:59 +02:00

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 CI
Crate crates.io
Docs docs.rs
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 unsafe by 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(())
}