A generic asynchronous library for modeling and executing Petri Nets. TypeScript is used as the development language for scalability purposes.
- Representation of petri nets
- Places, Transitions, Tokens, Arcs with multiplicity
- Use of RXJS observable pattern and promises for asynchronous events handling
- Import from PNML format
- Weighted Arcs
- Extensions such as Coloured, Timed and Hierarchical Nets
- Make sure to comply with High-level petri nets part 2- https://www.iso.org/obp/ui/#iso:std:iso-iec:15909:-2:ed-1:v1:en
Todo
Clone this repository, install npm dependencies and TypeScript declarations.
npm install
typings install
Copy the modified TypeScript declaration file for Mathlib from dep
directory to typings/main/mathlib/index.d.ts
. Also go in node_modules/mathlib
and modify the main
field of package.json
to build/commonjs/Mathlib.js
. This should get the Mathlib package working together with the rest of the petri net library.
Replace declare module "ROSLIB"
with declare module "roslib"
to make the declaration files work with roslib vanilla npm package.
npm test
You can also run the tests individually. For this, first install mocha
globally.
npm install -g mocha
npm install -g typedoc
typedoc --out doc/ --module commonjs --target ES5 --ignoreCompilerErrors src/