mctrust 0.2.1

Production-grade Monte Carlo Tree Search with UCT, RAVE, and pluggable environments
Documentation
mctrust-0.2.1 has been yanked.

mctrust

Monte Carlo Tree Search. UCT, RAVE, progressive widening, configurable policies, optional parallelism. Implement the Environment trait for your domain and the search handles the rest.

use mctrust::{Environment, GameState, SearchConfig, GameSearch, Reward};

// Define your domain
impl Environment for MyGame {
    type Action = usize;
    fn legal_actions(&self) -> Vec<usize> { /* ... */ }
    fn apply(&mut self, action: &usize) { /* ... */ }
    fn evaluate(&self) -> GameState { /* ... */ }
}

// Search
let config = SearchConfig::builder().iterations(10_000).build();
let mut search = GameSearch::new(game, config);
let best_move = search.run();

Not just for games

MCTS works anywhere you have a state space to explore: hyperparameter tuning, robot path planning, scan strategy optimization, molecular design, theorem proving. The Environment trait is generic.

TOML configuration

iterations = 50000
exploration_constant = 1.41
max_depth = 100

Contributing

Pull requests are welcome. There is no such thing as a perfect crate. If you find a bug, a better API, or just a rough edge, open a PR. We review quickly.

License

MIT. Copyright 2026 CORUM COLLECTIVE LLC.