ms_toollib
A cross-platform minesweeper algorithm toolbox with a native Rust core.
Supports Python 3.7–3.13 on Windows, Linux, and macOS.
Installation
pip install ms_toollib
No additional dependencies required.
Features
| Category | Description |
|---|---|
| Mine Laying | Random mine placement (first-click safe, Win7-style), no-guess mine generation (filter & adjustment methods) |
| Board Metrics | 3BV, 3BV/s, openings (Op), islands (Isl), ZiNi (Greedy/Human/Random) |
| Probabilities | Per-cell mine probability with block decomposition and enumeration |
| Deduction Solver | 3-tier solver: direct subset, subtract-and-compare, full enumeration (≤55 cells) |
| Solvability Check | Determine if a board is no-guess, find unsolvable structures |
| Game State Machine | MinesweeperBoard / SafeMinesweeperBoard that accepts mouse clicks and tracks full game state |
| Replay Parsing | Read AVF, EVF, MVF, RMV formats; save/write EVF (v0–v4) and EVFS containers |
| Optical Recognition | Recognize board state from an RGBA image via ONNX neural network (Sobel, Hough, DP) |
Quick Start
import ms_toollib as ms
# Generate a no-guess Beginner board
board = ms.laymine_solvable(9, 9, 10)
print(ms.cal_bbbv(board)) # 3BV
print(ms.cal_zini(board, 1)) # Greedy ZiNi
# Per-cell mine probability
prob = ms.cal_probability_onboard(board, 10)
# Parse a replay
video = ms.AvfVideo("replay.avf")
video.parse()
video.analyse()
print(video.bbbv)
See the full documentation for detailed API references.
Public API
Functions (30+):
cal_all_solution, cal_bbbv, cal_board_numbers, cal_hzini, cal_op, cal_probability, cal_probability_onboard, cal_rzini, cal_zini, get_all_not_and_is_mine_on_board, is_able_to_solve, is_guess_while_needless, is_solvable, laymine, laymine_op, laymine_solvable, laymine_solvable_adjust, laymine_solvable_thread, mark_board, obr_board, refresh_board, refresh_matrix, refresh_matrixs, refresh_matrixses, sample_bbbvs_exp, solve_direct, solve_enumerate, solve_minus, unsolvable_structure, valid_time_period
Classes (15):
AvfVideo, BaseVideo, Board, EvfVideo, Evfs, EvfsCell, GameBoard, KeyDynamicParams, MinesweeperBoard, MvfVideo, RmvVideo, SafeBoard, SafeBoardRow, SafeMinesweeperBoard, VideoActionStateRecorder
Supported Platforms
| OS | Architectures |
|---|---|
| Windows | x86, x64 |
| Linux | x86, x86_64, aarch64, armv7, ppc64le, s390x |
| macOS | x86_64, aarch64 |
Source & Issues
- GitHub: https://github.com/eee555/ms_toollib
- Documentation: https://docs.rs/ms_toollib/latest/ms_toollib
- PyPI: https://pypi.org/project/ms_toollib/
Metadata
Release files for ms_toollib 1.5.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ms_toollib-1.5.20.tar.gz | 314.9 kB | Details |
Built distributions (wheels)
Total release size: 29.4 MB
Release files / ms_toollib-1.5.20.tar.gz
| Download URL | ms_toollib-1.5.20.tar.gz |
|---|---|
| Size | 314.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55dc8430b4c402352084720d2de4a5b621162a46d17b51009a6ddbf1aebdb138
|
|
BLAKE2b-256 checksum How to use checksums |
6bdd3df232f43fe14bf11b445a5c196e6e6baec4c639f69c9dd7d53be101777c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-win_amd64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
21a67c3e26605ce2dbfd194f87a18b1caddc7b226d1d31580d9b938b53039487
|
|
BLAKE2b-256 checksum How to use checksums |
db522e3908d939715a239045121a2ead684f10e8b7fc493914d8a715435f92d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-win32.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-win32.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.8 Windows x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
5032c0f42a4d82c3ce74493cc5d598d6fb6b66af2b5fc60db12ca72ba1d0d0e1
|
|
BLAKE2b-256 checksum How to use checksums |
78bee14d732d3ad15a8bcbc898d862be2036d60def6a9da278655157667877ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_x86_64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c5ca8f9d18673a2475311507f52c99c89d03d9540f5a30afe1369ed78d40d4cd
|
|
BLAKE2b-256 checksum How to use checksums |
c57d8f1eb80accaff42a51f3fe9c7ddc51b2ff5ac28ac1e34d5c0ad03d67b42c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_i686.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_i686.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
f4952b19f062ac6839ae6d3aa09cf4459ffaac870c81d4583e7b6733f5d57e35
|
|
BLAKE2b-256 checksum How to use checksums |
3265f19e5cb64a787caca914e8b0a12173fe2a2491a5b81ff5a624866be64fab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_aarch64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.3 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
78e04709a5cdca1f2912c654175d587c56b318f2e46eaad05d5afdc4cf2f0ec4
|
|
BLAKE2b-256 checksum How to use checksums |
ab1d4c95f676d37cd4eda351f8f7e85e4f0b4abd2dbebc0ba30cde362c86e939
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9885ad7ceb0e88d6cf54dcb0be08f862cea7d7e258345115d033de7e68d125ff
|
|
BLAKE2b-256 checksum How to use checksums |
aa7ecc831e29552bb6dd29fd10ed4bc14029ac7d6716e9d93d74bc0279f68264
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
0ed2207662d3e75f21d9b1e67de0f7e83267950c6dc722a16b4e7b1981f292fc
|
|
BLAKE2b-256 checksum How to use checksums |
3de1516f34207f71396652efa9073701bca5d448d9b43b8d8f2441633b98dcb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.8 Linux glibc 2.12+ x86-32 abi3 |
|
SHA-256 checksum How to use checksums |
08b4337c05da3405d1c34d6f9a02b926d7199a254f91077ee9f040dbaa53a6bd
|
|
BLAKE2b-256 checksum How to use checksums |
f9b23f565e8d10930005b0fb3cb9303665db163a572e956f662e49c2c48be3ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e66a76962ebab6df6bd1fd2c8a2037133e7ea985c3691d23ada9948d025595ec
|
|
BLAKE2b-256 checksum How to use checksums |
9ec8d8d3ff098132ca4b20e908cd416b9413cf2a0dd8decba88c5243bf705f91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ms_toollib-1.5.20-cp38-abi3-macosx_10_12_x86_64.whl
| Download URL | ms_toollib-1.5.20-cp38-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.8 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
556b67b69051b67c037079245c1678bd0f8600498eef4164cc5d2a5edbfd20d8
|
|
BLAKE2b-256 checksum How to use checksums |
435735c6f9aaa822126fd42ae9a6edce64a54c096fcd6bf62a6511e57ebed674
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|