Skip to main content

License: MIT

Python Rules Engine

ZEN Engine is a cross-platform, Open-Source Business Rules Engine (BRE). It is written in Rust and provides native bindings for NodeJS, Python and Go. ZEN Engine allows to load and execute JSON Decision Model (JDM) from JSON files.

Open-Source Rules Engine

An open-source React editor is available on our JDM Editor repo.

Usage

ZEN Engine is built as embeddable BRE for your Rust, NodeJS, Python or Go applications. It parses JDM from JSON content. It is up to you to obtain the JSON content, e.g. from file system, database or service call.

Installation

pip install zen-engine

Usage

To execute a simple decision you can use the code below.

import zen

# Example filesystem content, it is up to you how you obtain content
with open("./jdm_graph.json", "r") as f:
  content = f.read()

engine = zen.ZenEngine()

decision = engine.create_decision(content)
result = decision.evaluate({"input": 15})

Loaders

For more advanced use cases where you want to load multiple decisions and utilise graphs you can build loaders.

import zen

def loader(key):
    with open("./jdm_directory/" + key, "r") as f:
        return f.read()

engine = zen.ZenEngine({"loader": loader})
result = engine.evaluate("jdm_graph1.json", {"input": 5})

When engine.evaluate is invoked it will call loader and pass a key expecting a content of the JDM decision graph. In the case above we will assume file jdm_directory/jdm_graph1.json exists.

Similar to this example you can also utilise loader to load from different places, for example from REST API, from S3, Database, etc.

Supported Platforms

List of platforms where Zen Engine is natively available:

For a complete Business Rules Management Systems (BRMS) solution:

JSON Decision Model (JDM)

GoRules JDM (JSON Decision Model) is a modeling framework designed to streamline the representation and implementation of decision models.

Understanding GoRules JDM

At its core, GoRules JDM revolves around the concept of decision models as interconnected graphs stored in JSON format. These graphs capture the intricate relationships between various decision points, conditions, and outcomes in a GoRules Zen-Engine.

Graphs are made by linking nodes with edges, which act like pathways for moving information from one node to another, usually from the left to the right.

The Input node serves as an entry for all data relevant to the context, while the Output nodes produce the result of decision-making process. The progression of data follows a path from the Input Node to the Output Node, traversing all interconnected nodes in between. As the data flows through this network, it undergoes evaluation at each node, and connections determine where the data is passed along the graph.

To see JDM Graph in action you can use Free Online Editor with built in Simulator.

There are 5 main node types in addition to a graph Input Node (Request) and Output Node (Response):

  • Decision Table Node
  • Switch Node
  • Function Node
  • Expression Node
  • Decision Node

Decision Table Node

Overview

Tables provide a structured representation of decision-making processes, allowing developers and business users to express complex rules in a clear and concise manner.

Decision Table

Structure

At the core of the Decision Table is its schema, defining the structure with inputs and outputs. Inputs encompass business-friendly expressions using the ZEN Expression Language, accommodating a range of conditions such as equality, numeric comparisons, boolean values, date time functions, array functions and more. The schema's outputs dictate the form of results generated by the Decision Table. Inputs and outputs are expressed through a user-friendly interface, often resembling a spreadsheet. This facilitates easy modification and addition of rules, enabling business users to contribute to decision logic without delving into intricate code.

Evaluation Process

Decision Tables are evaluated row by row, from top to bottom, adhering to a specified hit policy. Single row is evaluated via Inputs columns, from left to right. Each input column represents AND operator. If cell is empty that column is evaluated truthfully, independently of the value.

If a single cell within a row fails (due to error, or otherwise), the row is skipped.

HitPolicy

The hit policy determines the outcome calculation based on matching rules.

The result of the evaluation is:

  • an object if the hit policy of the decision table is first and a rule matched. The structure is defined by the output fields. Qualified field names with a dot (.) inside lead to nested objects.
  • null/undefined if no rule matched in first hit policy
  • an array of objects if the hit policy of the decision table is collect (one array item for each matching rule) or empty array if no rules match

Inputs

In the assessment of rules or rows, input columns embody the AND operator. The values typically consist of (qualified) names, such as customer.country or customer.age.

There are two types of evaluation of inputs, Unary and Expression.

Unary Evaluation

Unary evaluation is usually used when we would like to compare single fields from incoming context separately, for example customer.country and cart.total . It is activated when a column has field defined in its schema.

Example

For the input:

{
  "customer": {
    "country": "US"
  },
  "cart": {
    "total": 1500
  }
}
Decision Table Unary Test

This evaluation translates to

IF customer.country == 'US' AND cart.total > 1000 THEN {"fees": {"percent": 2}}
ELSE IF customer.country == 'US' THEN {"fees": {"flat": 30}}
ELSE IF customer.country == 'CA' OR customer.country == 'MX' THEN {"fees": {"flat": 50}}
ELSE {"fees": {"flat": 150}}

List shows basic example of the unary tests in the Input Fields:

Input entry Input Expression
"A" the field equals "A"
"A", "B" the field is either "A" or "B"
36 the numeric value equals 36
< 36 a value less than 36
> 36 a value greater than 36
[20..39] a value between 20 and 39 (inclusive)
20,39 a value either 20 or 39
<20, >39 a value either less than 20 or greater than 39
true the boolean value true
false the boolean value false
any value, even null/undefined
null the value null or undefined

Note: For the full list please visit ZEN Expression Language.

Expression Evaluation

Expression evaluation is used when we would like to create more complex evaluation logic inside single cell. It allows us to compare multiple fields from the incoming context inside same cell.

It can be used by providing an empty Selector (field) inside column configuration.

Example

For the input:

{
  "transaction": {
    "country": "US",
    "createdAt": "2023-11-20T19:00:25Z",
    "amount": 10000
  }
}
Decision Table Expression
IF time(transaction.createdAt) > time("17:00:00") AND transaction.amount > 1000 THEN {"status": "reject"}
ELSE {"status": "approve"}

Note: For the full list please visit ZEN Expression Language.

Outputs

Output columns serve as the blueprint for the data that the decision table will generate when the conditions are met during evaluation.

When a row in the decision table satisfies its specified conditions, the output columns determine the nature and structure of the information that will be returned. Each output column represents a distinct field, and the collective set of these fields forms the output or result associated with the validated row. This mechanism allows decision tables to precisely define and control the data output.

Example

Decision Table Output

And the result would be:

{
  "flatProperty": "A",
  "output": {
    "nested": {
      "property": "B"
    },
    "property": 36
  }
}

Switch Node (NEW)

The Switch node in GoRules JDM introduces a dynamic branching mechanism to decision models, enabling the graph to diverge based on conditions.

Conditions are written in a Zen Expression Language.

By incorporating the Switch node, decision models become more flexible and context-aware. This capability is particularly valuable in scenarios where diverse decision logic is required based on varying inputs. The Switch node efficiently manages branching within the graph, enhancing the overall complexity and realism of decision models in GoRules JDM, making it a pivotal component for crafting intelligent and adaptive systems.

The Switch node preserves the incoming data without modification; it forwards the entire context to the output branch(es).

Switch / Branching

HitPolicy

There are two HitPolicy options for the switch node, first and collect.

In the context of a first hit policy, the graph branches to the initial matching condition, analogous to the behavior observed in a table. Conversely, under a collect hit policy, the graph extends to all branches where conditions hold true, allowing branching to multiple paths.

Note: If there are multiple edges from the same condition, there is no guaranteed order of execution.

Available from:

  • Python 0.16.0
  • NodeJS 0.13.0
  • Rust 0.16.0
  • Go 0.1.0

Functions Node

Function nodes are JavaScript snippets that allow for quick and easy parsing, re-mapping or otherwise modifying the data using JavaScript. Inputs of the node are provided as function's arguments. Functions are executed on top of QuickJS Engine that is bundled into the ZEN Engine.

Function timeout is set to a 50ms.

const handler = (input, {dayjs, Big}) => {
    return {
        ...input,
        someField: 'hello'
    };
};

There are two built in libraries:

  • dayjs - for Date Manipulation
  • big.js - for arbitrary-precision decimal arithmetic.

Expression Node

The Expression node serves as a tool for transforming input objects into alternative objects using the Zen Expression Language. When specifying the output properties, each property requires a separate row. These rows are defined by two fields:

  • Key - qualified name of the output property
  • Value - value expressed through the Zen Expression Language

Note: Any errors within the Expression node will bring the graph to a halt.

Decision Table

Decision Node

The "Decision" node is designed to extend the capabilities of decision models. Its function is to invoke and reuse other decision models during execution.

By incorporating the "Decision" node, developers can modularize decision logic, promoting reusability and maintainability in complex systems.

Support matrix

Arch Rust NodeJS Python Go
linux-x64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
linux-arm64-gnu :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-x64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
darwin-arm64 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
win32-x64-msvc :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

We do not support linux-musl currently.

Contribution

JDM standard is growing and we need to keep tight control over its development and roadmap as there are number of companies that are using GoRules Zen-Engine and GoRules BRMS. For this reason we can't accept any code contributions at this moment, apart from help with documentation and additional tests.

Metadata

Release files for zen-engine 0.36.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zen-engine 0.36.0
File Size Uploaded
zen_engine-0.36.0.tar.gz 174.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.36.0
File
zen_engine-0.36.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.36.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.36.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.36.0-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.36.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.36.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.36.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.36.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.36.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.36.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.36.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.36.0-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.36.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64 Details
zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64 Details

Total release size: 114.1 MB

Release files / zen_engine-0.36.0.tar.gz

Download URL zen_engine-0.36.0.tar.gz
Size 174.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ee0404e1d2b10d4cd4aae6459960d8bcc0552278b1a2e0d4f3d756f905eac0db
BLAKE2b-256 checksum
How to use checksums
3c580abd2c20dcbc410afaf7b4e6e89dd5619c2140b5f2223ff1604794a5be5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
fa3e4d3ec3e49f3a964c6b8078a4a990f121f3ae0987b1d5b07c1680c61c0090
BLAKE2b-256 checksum
How to use checksums
c7d22bbb1f1f2c8371ee36f87326947e0660af41def1eee3c13c2445e484b73e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
67d6e36e18156f27c81ef3b69bf0103f899debfcb8152b1ff0a2b351845c147e
BLAKE2b-256 checksum
How to use checksums
adc61e996be5fade1564b59b4a4991cc81e1d702b44f60cc39c8f45820345629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
d85ae3980ef933a202bcfa4a34caee26e2f221f9a88834952c2d2737f904aa03
BLAKE2b-256 checksum
How to use checksums
946ca4f27d9fdeecd14522b2cdc61376eac3a6f3728ceab14bee2487a66ec92d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
efc23f88077775f5159ffa359431ec4c426ddfbd3d48b03a17edac09a474eab8
BLAKE2b-256 checksum
How to use checksums
3e7a2fba151814cee1a74be4059046e11d28044666cf508d7dc766fd4f801df6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
1f3475443247be20e3763b9c1151d0103a4fa86f9fb38c6c2e58f7141dca5567
BLAKE2b-256 checksum
How to use checksums
c723e1e287a902044955902fcd64c47a194f3e5533131d3a5cbf263670ebe7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
5f72d133c7bcae5d445106310f9944d7a78b659d03a800d1c9d25c501942fbff
BLAKE2b-256 checksum
How to use checksums
25d93dbeafb71e3db71fa40554215daf0e0680e13a4d0fda0b1ef9d704522422
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
5ed10374b6b7a35f3a7b47d7286dcc4cdc3b01c2802724695ad565754b57bf11
BLAKE2b-256 checksum
How to use checksums
0183cb5d9d8e27d4777324c1ac0af3d489dc91f18f49be1032e4232c1fff17f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp312-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp312-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3a30393578b53351355d3363a839adb5be8fe041cb3435cc36f5745ec84bc859
BLAKE2b-256 checksum
How to use checksums
4a1f1dab3bdb55e65b3b366811e346c3ffe0e10eeba56242b6ca6aedd25d8479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cd7147e98ab33b3a55ab5fa03172808f59450f5b3b5df22dc67853bb58a75361
BLAKE2b-256 checksum
How to use checksums
7eb894b9dfbf96c41a3c852f35ef3bbe5be5441370f46231ce304cd0bcffe0a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d391e29838c400a0393ee351570a4641512250e98cc430ad92bb3b0bb300d165
BLAKE2b-256 checksum
How to use checksums
d3eebc68125e5b118052f2704078d498d19e1d0fb57444d7a34744cfd3e7a37f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL zen_engine-0.36.0-cp312-cp312-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2b1b4275d65de4fac6d61f22c4c02c57559bbea589714f382fc4a7f2a2ac53ce
BLAKE2b-256 checksum
How to use checksums
01b303cdca601d326ee8d402d16ffe1858afcefd6330a77b7d4175a09114a84a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL zen_engine-0.36.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ea655bf8e8b0e8a000d1a9ed2050b7ddae1a2f4e1d3691dc179f998c9c2f5aed
BLAKE2b-256 checksum
How to use checksums
8850eb50134ead32978d1c533e1b572cc4eef874c2d977180f93158151befa9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp311-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp311-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e3f819bffa911f8336b7829d6a39e9187d33804587f580e02d9288bafba5f1ae
BLAKE2b-256 checksum
How to use checksums
f4584aa90c2be682a2ff866915140b69176f7c2ab66cc0255c1db47dfa3ca25c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
760f14a8f7fb1162aaf572d993b898375d48d2d5e344ccfe4b4d8ce67c2a283e
BLAKE2b-256 checksum
How to use checksums
4c5ff14ab42fbc7f34c2731f797c52feffe0798de8d2e9c47769360e6a1a3f6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fc7ad0196e6774a0623e9d46675c673b456866cf6b2b96d6897e48ab7259f5c5
BLAKE2b-256 checksum
How to use checksums
4cac90a4bbf9254164d720b964e20f1f5b00d7ef6b11280781ad24b9e7ec85d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL zen_engine-0.36.0-cp311-cp311-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
103954016acb2029704b5c42c4edd28c45923174d029ac7a7d2737a305abff0b
BLAKE2b-256 checksum
How to use checksums
2f5e1a9559f6e2916a564dc80c3610373606f0149924d1abb2bf4c76a690ff8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL zen_engine-0.36.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.7 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5884e06a0fa234f5485eaee4c7b2ea308341ac3f101aa1afede3e23f75db63fc
BLAKE2b-256 checksum
How to use checksums
cdcc08651820b7e70ed0061ecd9f77f496b79ee3fedb01f357dc73cbf1f99dbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp310-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp310-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4939f48d23361a26d1fe8041ee2276d26453f5d4a6c69def6001f4781a2330e1
BLAKE2b-256 checksum
How to use checksums
b05619e01c774275f6ed00004c8caee69ba016c3e436755d2829df5613578b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2636418f3fe5bb37a7ab18d67b548d7f621eb664257ecb7abaa79af2ded4e5ea
BLAKE2b-256 checksum
How to use checksums
cfc83ca2bb046391e54a286395bc633cef19be82d3c3a464d011169522b02c1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a65f62a230ea5f02d79a6d8acf032f01033243c7a2f7f1f5c306ed9209a380e5
BLAKE2b-256 checksum
How to use checksums
7d515fa5b8d554b2a629e1b10906b1a276f636edd145a7a27a85fea7f52efe12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL zen_engine-0.36.0-cp310-cp310-macosx_11_0_arm64.whl
Size 3.4 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cb38df6e915f9d3351715bf8c95b38e3a85c3168e6448884555cd81d04b69cb9
BLAKE2b-256 checksum
How to use checksums
a714883e7d6911347fe9979e50f5c4d83f84f8412b21e5028012b0d0dd5307c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL zen_engine-0.36.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.7 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
27c0e915aad67069bcc138d3dded8fa52f70f1f9cd76995bcc495343dd9b1991
BLAKE2b-256 checksum
How to use checksums
132622baa0a9fb01996e956f95a22d737ca16fd22282112daec88092ae0a03c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp39-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp39-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
01f7d195c57da2b1af750f504ce01be48a6edc663f7dd094e4e51f3e7df9a66a
BLAKE2b-256 checksum
How to use checksums
7413395894fa633b82b943ad8b29c5ee48ce34d0c464589c6f4bb50b4c4d9ac0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7ace2b6421ccd09914ebcdd14124baa6b7bc15d8187535b6bee4e9c7e6d20043
BLAKE2b-256 checksum
How to use checksums
a7be37fb1a4839c7c4d2ad4a25b52d1d8170aa1d004c3808ccdb7afa28520d6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d3e949eed8a6398295bf47ceb628d06aac7bfe947c21544c1f814aa2709262e0
BLAKE2b-256 checksum
How to use checksums
577b76ae45651a57ac8aa7cc9a772673bc9815235b366004dd767ed2cb67dda8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp38-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp38-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
66b48ca414f671196d6e21b7178614b1fd4e0b849e95d59028615ab937844a44
BLAKE2b-256 checksum
How to use checksums
0955d2ad703ed32ddd42cd071886a7201816b0c186c80058700aa3095794f8ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
211224b2ddb538a9840bf5ae2871210af77e19602033bf1a31f71089e1c28dc8
BLAKE2b-256 checksum
How to use checksums
39f03e985b7411686c56c7564e0b933333995bc0ab356c61bd17fdc16d5423bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp38-cp38-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
32c8fd5700e8b4581172f00401f05d2865decfcf7c3bbc6b0a8ce7b3dd0d097e
BLAKE2b-256 checksum
How to use checksums
705d285d85d56d068de1131515fd0d6df5a469ee56e1cf48aeeea86d60994344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp37-none-win_amd64.whl

Download URL zen_engine-0.36.0-cp37-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
85bea37dfa9a814483b3e237a6ce6cbd9aa5e0eba58a636503d2ce28dd7739fb
BLAKE2b-256 checksum
How to use checksums
89ffbad1bb9d5d8cc5844c7a1a74be9eee5894bfe3e2904938094630d51176e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_x86_64.whl

Download URL zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
61d27ebf276732ebc1d5da9f0b79431dd4268f5c50aa450e0e3a8e0549139185
BLAKE2b-256 checksum
How to use checksums
f69e4e4358b9a2535d534172447c3704b4ab6b38c3e931737e476930bafdb757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release files / zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_aarch64.whl

Download URL zen_engine-0.36.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b23e0e0f4dbbc9a8413699c4a163ff1ef26280cd259365d7f1ee37ae4013e517
BLAKE2b-256 checksum
How to use checksums
14a7cdec5923bb4f3750c8704cf2ab240a889c05f3216baa6e445b31c2873d9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.0

Release history Release notifications | RSS feed

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

0.36.0 This release

32 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page