Crate chess_vector_engine

Source
Expand description

§Chess Vector Engine

A production-ready Rust chess engine that revolutionizes position evaluation by combining vector-based pattern recognition with advanced tactical search and NNUE neural network evaluation.

§Features

  • 🎯 Hybrid Evaluation: Combines pattern recognition with advanced tactical search
  • ⚡ Advanced Tactical Search: 6-14+ ply search with PVS, iterative deepening, and sophisticated pruning
  • 🧠 NNUE Integration: Efficiently Updatable Neural Networks for fast position evaluation
  • 🚀 GPU Acceleration: CUDA/Metal/CPU with automatic device detection and 10-100x speedup potential
  • 📐 Vector Position Encoding: Convert chess positions to 1024-dimensional vectors
  • 🎮 Full UCI Compliance: Complete chess engine with pondering, Multi-PV, and all standard UCI features
  • ⚡ Production Optimizations: 7 major performance optimizations for 2-5x overall improvement

§Quick Start

use chess_vector_engine::ChessVectorEngine;
use chess::Board;
use std::str::FromStr;

// Create a new chess engine
let mut engine = ChessVectorEngine::new(1024);

// Add some positions with evaluations
let board = Board::default();
engine.add_position(&board, 0.0);

// Find similar positions
let similar = engine.find_similar_positions(&board, 5);
println!("Found {} similar positions", similar.len());

// Get position evaluation
if let Some(eval) = engine.evaluate_position(&board) {
    println!("Position evaluation: {:.2}", eval);
}

§Open-Core Architecture

This crate implements an open-core business model:

  • Open Source (MIT/Apache-2.0): Basic UCI engine, position encoding, similarity search, opening book, 6-ply tactical search
  • Premium (Commercial License): GPU acceleration, NNUE networks, ultra-fast loading, 10+ ply search, multi-threading
  • Enterprise (Enterprise License): Distributed training, cloud deployment, enterprise analytics, unlimited positions

All features are developed in a single codebase with runtime license verification controlling access to premium features.

§Performance

  • 🚀 Ultra-Fast Loading: O(n²) → O(n) duplicate detection (seconds instead of hours)
  • 💻 SIMD Vector Operations: AVX2/SSE4.1/NEON optimized for 2-4x speedup
  • 🧠 Memory Optimization: 75-80% memory reduction with streaming processing
  • 🎯 Advanced Search: 2800+ nodes/ms with PVS and sophisticated pruning
  • 📊 Comprehensive Testing: 123 tests with 100% pass rate

§License

Licensed under either of:

at your option.

Re-exports§

pub use auto_discovery::AutoDiscovery;
pub use auto_discovery::FormatPriority;
pub use auto_discovery::TrainingFile;
pub use features::FeatureChecker;
pub use features::FeatureError;
pub use features::FeatureRegistry;
pub use features::FeatureTier;
pub use gpu_acceleration::DeviceType;
pub use gpu_acceleration::GPUAccelerator;
pub use license::LicenseError;
pub use license::LicenseKey;
pub use license::LicenseStatus;
pub use license::LicenseVerifier;
pub use license::LicensedFeatureChecker;
pub use lichess_loader::load_lichess_puzzles_basic;
pub use lichess_loader::load_lichess_puzzles_premium;
pub use lichess_loader::LichessLoader;
pub use lsh::LSH;
pub use manifold_learner::ManifoldLearner;
pub use nnue::BlendStrategy;
pub use nnue::EvalStats;
pub use nnue::HybridEvaluator;
pub use nnue::NNUEConfig;
pub use nnue::NNUE;
pub use opening_book::OpeningBook;
pub use opening_book::OpeningBookStats;
pub use opening_book::OpeningEntry;
pub use persistence::Database;
pub use persistence::LSHTableData;
pub use persistence::PositionData;
pub use position_encoder::PositionEncoder;
pub use similarity_search::SimilaritySearch;
pub use streaming_loader::StreamingLoader;
pub use tactical_search::TacticalConfig;
pub use tactical_search::TacticalResult;
pub use tactical_search::TacticalSearch;
pub use training::EngineEvaluator;
pub use training::GameExtractor;
pub use training::SelfPlayConfig;
pub use training::SelfPlayTrainer;
pub use training::TacticalPuzzle;
pub use training::TacticalPuzzleParser;
pub use training::TacticalTrainingData;
pub use training::TrainingData;
pub use training::TrainingDataset;
pub use ultra_fast_loader::LoadingStats;
pub use ultra_fast_loader::UltraFastLoader;
pub use variational_autoencoder::VAEConfig;
pub use variational_autoencoder::VariationalAutoencoder;
pub use uci::run_uci_engine;
pub use uci::run_uci_engine_with_config;
pub use uci::UCIConfig;
pub use uci::UCIEngine;

Modules§

ann
auto_discovery
features
gpu_acceleration
license
lichess_loader
lsh
manifold_learner
nnue
opening_book
persistence
position_encoder
similarity_search
streaming_loader
tactical_search
training
uci
ultra_fast_loader
variational_autoencoder

Macros§

if_feature
Conditional compilation macros for features
if_feature_else
require_feature
Macro for easy feature checking

Structs§

ChessVectorEngine
Chess Vector Engine - Production-ready chess engine with hybrid evaluation
HybridConfig
Hybrid evaluation configuration
MoveRecommendation
Move recommendation data
TrainingStats
Training statistics for the engine