Decision Model and Notation Toolkit

Crates.io MIT licensed Apache 2.0 licensed build Linux build Windows build MacOs Code coverage

Overview

DMNTK is a set of tools for evaluating, building, and testing decision models. DMNTK is based on the Decision Model and Notation (DMN™) specification, the industry standard led by the Object Management Group (OMG®), the institution behind such standards like UML®, BPMN™ and CORBA®. DMNTK aspires to be performant, reliable and fully compliant with DMN™ specification, decision model evaluator. DMNTK is written in Rust.

Main DMNTK features:

Installation

DMNTK ships as a single executable with no dependencies.

Binary version of DMNTK may be - obtained directly from GitHub releases, or - built and installed from source using Cargo.

Installing DMNTK using Cargo:

shell $ cargo install dmntk

Getting started

DMNTK provides few examples, ready to play with. To install examples run:

shell $ dmntk exs

Evaluate example FEEL expression

shell $ cd ./examples/e1 $ dmntk efe e1.ctx e1.feel 3

Evaluate example DMN model

shell $ cd ./examples/e2 $ dmntk edm e2.ctx e2.dmn -i "Greeting Message" "Hello John Doe"

Evaluate example decision table

shell $ cd ./examples/e3 $ dmntk edt e3.ctx e3.dtb 0.15

Run DMNTK as a service

shell $ cd ./examples/e2 $ dmntk srv -H 127.0.0.1 -D . Loaded 1 file(s) from directory: . dmntk 127.0.0.1:22022

Switch to another terminal window and run:

shell $ curl -s -d "{\"Full Name\":\"John Doe\"}" -H "Content-Type: application/json" -X POST http://127.0.0.1:22022/evaluate/compliance-level-2-test-0001/Greeting%20Message {"data":"Hello John Doe"}

Documentation

More detailed documentation can be found on dmntk.io.

License

Licensed under either of - MIT license (LICENSE-MIT), or - Apache License, Version 2.0 (LICENSE-APACHE) at your option.

Contribution

Unless you explicitly state otherwise, all contributions intentionally submitted for inclusion in the work by you, shall be dual licensed as above, without any additional terms or conditions.