poolsim-core 0.1.0

Core simulation engine for poolsim
Documentation

poolsim-core

poolsim-core is the Rust library crate for connection-pool sizing.

It is the simulation and analysis engine behind the poolsim workspace.

Scope

The current release focuses on sizing calculation, not runtime pool enforcement.

It provides:

  • workload and pool validation
  • latency distribution fitting
  • Erlang-C helpers
  • Monte Carlo queue simulation
  • pool-size optimization
  • sensitivity analysis
  • step-load analysis

Install

[dependencies]
poolsim-core = "0.1.0"

Primary APIs

Use the crate-root APIs for the most common workflows:

  • simulate: full recommendation workflow
  • evaluate: score a fixed pool size
  • sweep: generate sensitivity rows with default options
  • sweep_with_options: generate sensitivity rows with explicit options

Important public modules:

  • poolsim_core::types
  • poolsim_core::distribution
  • poolsim_core::erlang
  • poolsim_core::monte_carlo
  • poolsim_core::optimizer
  • poolsim_core::sensitivity
  • poolsim_core::error

Example

use poolsim_core::{
    simulate,
    types::{PoolConfig, SimulationOptions, WorkloadConfig},
};

let workload = WorkloadConfig {
    requests_per_second: 220.0,
    latency_p50_ms: 8.0,
    latency_p95_ms: 32.0,
    latency_p99_ms: 85.0,
    raw_samples_ms: None,
    step_load_profile: None,
};

let pool = PoolConfig {
    max_server_connections: 120,
    connection_overhead_ms: 2.0,
    idle_timeout_ms: None,
    min_pool_size: 3,
    max_pool_size: 24,
};

let report = simulate(&workload, &pool, &SimulationOptions::default()).unwrap();
assert!(report.optimal_pool_size >= 3);

Output

The main simulation output includes:

  • recommended pool size
  • confidence interval
  • cold-start minimum pool size
  • utilisation ratio
  • queue-wait metrics
  • sensitivity rows
  • optional step-load analysis
  • warnings

See Also

Notes

  • For CLI usage, see the poolsim-cli crate.
  • For HTTP and WebSocket usage, see the poolsim-web crate.