discrete-simAnalyze complex systems through discrete event simulation.
Built with TypeScript generators inspired by SimPy.
Built with TypeScript generators inspired by SimPy.
npm install discrete-simyarn add discrete-simpnpm add discrete-simbun add discrete-simRequirements: Node.js 16+, TypeScript 5.0+ (recommended)
import { Simulation, Resource, timeout } from 'discrete-sim';
// Define a simple customer process
function* customer(id: number, server: Resource) {
console.log(`Customer ${id} arrives at ${sim.now}`);
// Request the server
yield server.request();
console.log(`Customer ${id} starts service at ${sim.now}`);
// Service time
yield* timeout(5);
// Release the server
server.release();
console.log(`Customer ${id} leaves at ${sim.now}`);
}
// Create simulation
const sim = new Simulation();
const server = new Resource(sim, 1, { name: 'Server' });
// Start 3 customer processes
for (let i = 0; i < 3; i++) {
sim.process(() => customer(i, server));
}
// Run simulation
sim.run();discrete-sim? Discrete event simulation is a powerful technique for modeling complex systems where state changes occur at discrete points in time. Whether you're modeling:
discrete-sim provides the tools you need to build accurate, efficient simulations.