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.37.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.37.0
File Size Uploaded
zen_engine-0.37.0.tar.gz 175.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zen-engine 0.37.0
File
zen_engine-0.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.0-cp312-none-win_amd64.whl CPython 3.12 none Windows x86-64 Details
zen_engine-0.37.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.37.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
zen_engine-0.37.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
zen_engine-0.37.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
zen_engine-0.37.0-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
zen_engine-0.37.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.37.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
zen_engine-0.37.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
zen_engine-0.37.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
zen_engine-0.37.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
zen_engine-0.37.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.37.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
zen_engine-0.37.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
zen_engine-0.37.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
zen_engine-0.37.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
zen_engine-0.37.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.37.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
zen_engine-0.37.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
zen_engine-0.37.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.37.0-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
zen_engine-0.37.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
zen_engine-0.37.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.37.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.3 MB

Release files / zen_engine-0.37.0.tar.gz

Download URL zen_engine-0.37.0.tar.gz
Size 175.1 kB
Tags Source
SHA-256 checksum
How to use checksums
af5b2983287adc58e764822f57682e18514cdefb4a2ec4fcbc4db053711890ee
BLAKE2b-256 checksum
How to use checksums
7b13017406b8b3db49caa07744ad7a8eb3260b5f5a461a1cf875ec910b0d1b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
e9825898d5d799c2cc5d9534082224fed92db28d2e14d02276a663b6fc4be66f
BLAKE2b-256 checksum
How to use checksums
5f5aed2bb6e8de2d71413eac22f56c4be82395c7896bde1583e1d4c4623cec75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
ebca22fcd95e72ba3305ed8d52c8640d5a37aac5b01f32c88f09f7caaab4561e
BLAKE2b-256 checksum
How to use checksums
0b756746b18466572df1622b3cd6e8bf3fecdc599848d5baffec7974ea544154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
11f21938bcd32ecad399b79df17be6d4660a2bc355a0228fdc65d5aaaa770d1b
BLAKE2b-256 checksum
How to use checksums
7d186c750867af3476ba7fa8b83d971f5846e7506a8927d3c772109f04ad386a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
7129f7d0ced0b0c544a8464d16a9dbc7b6a24630906bdcc741d7b6f836f0a5a8
BLAKE2b-256 checksum
How to use checksums
2f2f256ae9e8fa1c7f0a9296e167feab5308bbea99f5b4744f706af53f8fcc47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
6d0fbc2ba9a453f0ae44b65673489bdb53803bc8f25eeae43f812546a1909457
BLAKE2b-256 checksum
How to use checksums
253367db9e22eae9bdd9c7e4c68f056e918adee8212f8c80eae4c7779cff6e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
431b908ff608d483cbd6f25c3b0733bb362757695f452d867420ced3345397d4
BLAKE2b-256 checksum
How to use checksums
44dfb40ca3832ad3a3ebd8c5bee1f7f711d28940e5de3c6c572846b1abaa6ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
acd23cfc2163f63f343f1710e378b327dbd93de487f9b2abbf6e18c27cd9f631
BLAKE2b-256 checksum
How to use checksums
dc5c03604d3fe35963d7ecf03a5ec537aace5eb4e478402efa91febbe7b4ce9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.0-cp312-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c846867ea76523f14a8c8943a420df92892778b0b00ee35bad955f907a7ba5f0
BLAKE2b-256 checksum
How to use checksums
27e62ccf18485be7a850dde62b2e99f0519a2beeb4c8feb4a15bfb18afb644da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
3badc0527a9e205b04f49c288dec140385484b7aa9c19464f4c28c185b37b216
BLAKE2b-256 checksum
How to use checksums
debe4025184f8a7fc30072eb1f3181e3ab27627cb9ce7f7db5b475aa215155d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
d7c2c243c5adc818038dc74a6206b14116fc292f5cf7d4304f9e4d3563d45499
BLAKE2b-256 checksum
How to use checksums
033d36c6571ec9d801d8b2f9c86d8a620e5ab05d0b236d8be8a1349773838a5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
6fb024f63c8abdd48044b66f6e69ba8ec646650fa83f14da3642c441111010a7
BLAKE2b-256 checksum
How to use checksums
4c6b24e54a65ce959a7575cf82d6c6b8cc19daf37bad649b648f374d4c4c5316
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
77d3a7786c43d3834d21b4b049b9f1dfed496d4964aaf81b49c9fc795b927230
BLAKE2b-256 checksum
How to use checksums
3c95d4b828305ce8c751fd4153e0b47c14f36ecd77e8af70e834408bb16203c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

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

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

Download URL zen_engine-0.37.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
2f3f1caed81f9c6770086238ee98ad285bf82537ed1f53bc3169753105c9f881
BLAKE2b-256 checksum
How to use checksums
c97d921392fc9a237d9974c1547f6b2c76a2304810b8c9051577fbe1075d0fb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
134f6ffe64d255bf98ff09fad55a9aeba425a6da6b2c93d1c75abf0c61b61715
BLAKE2b-256 checksum
How to use checksums
42fae07a82856729fd5cc0745290a286385febc2d7f1e4ea9177c1688a93d299
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
638bed0b821ac4e74f81bc97a0c1689832f40103e11d9b3f62452cbc5edd36e5
BLAKE2b-256 checksum
How to use checksums
97745672f73968f6bdda937e1a1a9fd159c3e00c1a5909da39db5f51632e068a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
b4c9a08a1ebbd6d67224a4060ab17ff2c6407aa839c2428ea4710762a9d34a95
BLAKE2b-256 checksum
How to use checksums
e78e6db723baf28144ac5449dd4f5eb1fdf0f3d946288a6181823c70b1c12c8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.0-cp310-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3b588ecc48fe107d817152a15d6e9ee928835bfb0a669534deceabe26bb71d02
BLAKE2b-256 checksum
How to use checksums
2229f40383bb7aa803c77b970d29b9cd280382d5119561badeb0b2ac0a58c967
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
f49f88afe2f9aa2138f753239dd88416b249d6cf215898e9d7165fe502bec13c
BLAKE2b-256 checksum
How to use checksums
89922d97551d38475a48f6fc4c2960f671bd18ff9c3ab815455b0412fb62ac10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
cb6842fd4c8c8a380ab90c3e17407076ec7e6171ad2045fc91d346570f47a619
BLAKE2b-256 checksum
How to use checksums
5a157c1ca72b381c6fbee178c2257bb9acfa7ec3080abcb151db6c04caf775e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
202e3728f98987a3f5be7e9fb881ef581596657408a0030dc5065413250f4682
BLAKE2b-256 checksum
How to use checksums
2ce3adb8d9bcd651ba31b86a21d464c1ac15c998ab683fdf8b2e1b8f12c0cc3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
e55ca5eb47b0c505c6bb7f429e7398d6df5165e5255cfa7a9450939f3c486050
BLAKE2b-256 checksum
How to use checksums
a81fa91e33509a43d509817db944199e2a3ef6ff7268e2d9b2575f3027a09463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.0-cp39-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6e05bce3c974f059be4ee35d8061bee3a45f96155450497b4da46a110ba105b2
BLAKE2b-256 checksum
How to use checksums
c8aaea4c240863e24fc5c8eb953147dd113141fdfa596deaaee4ca5e97308471
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
9b142472d7323985a2c16941837d16d056706f2a2c62a90c6ed54f46b9d1b3b5
BLAKE2b-256 checksum
How to use checksums
a4ff10f1b3bb13b3ae829b745d97c7492a95f88618c41055e1b879b7d03d5e47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
cd3049a19caa9f7238b3aa85ae9d41801a4b03eda22068ea78725bc8a846b8eb
BLAKE2b-256 checksum
How to use checksums
51f41f9e5393a026e60386fc98fc26eaee71bb45e5d8262ed7bb0b1b1bf56625
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.0-cp38-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
24f7b0b98d9cd55a5f55fcf6bb6edef7c7e0089c5c82445e3ccecca7392b9193
BLAKE2b-256 checksum
How to use checksums
e323e2b25f3b47fa8aebd2966963ba31bb422c831b64e642dbfeaa4e1f202fab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
7e4034e6a0d9a18695eaf8a4d06545da68707a0e8cfee162af21890327a98386
BLAKE2b-256 checksum
How to use checksums
5db91ba76336409b31cffcfd0275a9a96d4081cb5ad727da9ea1fd4c4ad1f788
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
04a257fd012bcc53140b0bf657c75d1c9b01225e92d08560cb84588626736780
BLAKE2b-256 checksum
How to use checksums
0afc81f5970f81e908d9d6ad780ad612e9dc49f6696252e494bff535c559c181
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.0-cp37-none-win_amd64.whl
Size 3.8 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
58e52ccae4dc383e022cd00d5b9e0c1b97e5fb1e4b9e120d37680b1325826495
BLAKE2b-256 checksum
How to use checksums
278da69163119e0019a4c6fadd8f5dd8c3670eb6354525d9149fabe3d5138294
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
07ad8924b19a0f98d7043e5b73e0a429bc9aa2b0c3ef4d94ba853098b4a92ff0
BLAKE2b-256 checksum
How to use checksums
137e4940f2d305ee416c6563b82ce213d686aaf5a198aef2bf3a156b13561dbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

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

Download URL zen_engine-0.37.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
4b937e270994d88100d47c181c86c422be1ba975e4cdb45082689f99f63d0bcf
BLAKE2b-256 checksum
How to use checksums
75e2ccdc1593f6b43a836f6a9abb706c54ebe9e218b0bfaa17da7f4bddd4f49a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.1

Release history Release notifications | RSS feed

2.1.3

6 release files

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.37.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