sabita

Crates.iosabita
lib.rssabita
version0.5.3
created_at2025-01-04 15:55:26.167344+00
updated_at2025-11-18 23:14:39.011127+00
descriptionSabita is a Sudoku solver / generator made with Rust
homepage
repositoryhttps://github.com/MikyStar/Sabita
max_upload_size
id1504022
size122,942
Mike AUBENAS (MikyStar)

documentation

README

Sabita (錆びた)

Lint/Security/Dependencies/Tests crates.io version

Sabita is a Sudoku solver / generator made with Rust

'Sabita' (錆びた) means 'rusty' in japanese

CLI

Install

From a binary release

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/MikyStar/Sabita/refs/heads/main/install.sh | sh

From Cargo

You will need to install Rust

cargo install sabita

Use

# Generator
sabita g file/to/create # Generate a sudoku with no missing value
sabita g file/to/create 50 # Generate a sudoku with 50 missing values

# Solver
sabita s file/to/solve # Solve the sudoku (check out file sudoku.example) to see format

# Help
sabita -h
sabita --help

# Version
sabita -v
sabita --version

Performances

Benchmarks are handle through two libs, Perfos and Criterion

  1. Perfos

Perfos will be storing the results in the benchmarks folder

  1. Criterion

Criterion

Dev

Commands

Many aliases and sequences are handled through cargo-make you will need to install it

cargo run # Builds and run the project

cargo fmt # Format code
cargo fmt -- --check # Throw error if unformated code

cargo clippy # Advanced linter
cargo clippy --fix # Fix auto fixable

cargo build # Only build it

cargo test # Run all unit tests
cargo test <file without extension> # Run specific test file inside the 'tests' folder (don't write it in path)
cargo test <specific function name> # Run specific test function

cargo add <package> [--dev] # Install a project dependency (or a dev dependency)
cargo install <package> # Install a system wide dependency

cargo doc # Generates HTML documentation

cargo clean # Remove 'targer' directory (build artifacts, doc ...)

cargo publish # Publish project to crates.io registry

cargo tree # Recursize list of lib dependencies

cargo bench --bench perfos
cargo bench --bench criterion
cargo bench # Run all of them

Git hooks

Git hooks are handled with rusty-hook, to enable them after a fresh install, run cargo test

Tasks

Using CLI-Manager for task handling.

Commit count: 183

cargo fmt