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.29.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.29.0
File Size Uploaded
zen_engine-0.29.0.tar.gz 168.6 kB Details

Built distributions (wheels)

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

Total release size: 99.7 MB

Release files / zen_engine-0.29.0.tar.gz

Download URL zen_engine-0.29.0.tar.gz
Size 168.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c9dafdd1571a70a2623a67632bcfe5328852d05c809f7b270a734cc50af27261
BLAKE2b-256 checksum
How to use checksums
ee7d6f187e59e42ef1691ea01c113006fbb04172f60526342bb779c8a4a02e17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
4e068ea443db4859735ff65343588084e58b4c9fb8e326b0b47f8ad1a3944192
BLAKE2b-256 checksum
How to use checksums
2bc5167b44597e79f0968f0594f084ef123b56748dfc73fc9fba082f18910b2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
2784e593a1c87af16a7ea10e66eef062033bb1fec470cf4ebe71fc30481fbff6
BLAKE2b-256 checksum
How to use checksums
9beba1c07fc42c88cc5be90484db0689dd9068d952fbb1bdec57ce538afd2177
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
baf005f56ae782fab4cb459d741dfcc479b06af7b275d457a492a3b70fdfaa42
BLAKE2b-256 checksum
How to use checksums
406974c2a158a80b46eaad4db660d3d3b30497b1943ab62fd965db36c88ed687
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
35f1e81ca900188e9b876e1da1415ffe66310ea9a53b47da54b6ffcb3387cdcd
BLAKE2b-256 checksum
How to use checksums
0d4b03dbbab45fa7cd52d15051f703d7f877f74fbc279d61207a6ed4cf2b78c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
7efe3e68285091a77d62ac3046509d5a765e3b166adc1a9e3f319046dc8ab75e
BLAKE2b-256 checksum
How to use checksums
6f937190496d4b726da938a55cde930c7f8c528c46f01b07f6dae6f0869e7c10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
c2ebae1ad9b60695ecb9bb1cac171f3082f8e1391f9bf52f1bda8034dfe7ef05
BLAKE2b-256 checksum
How to use checksums
3a7a82ad978ef91744efa20903ddb0a9f43d5a5cc43b61c08a112f9e8472a2bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp312-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
0f46c9c2db2b66fcc2b58b7d020fca502d13109004e190a2e1d9fb2cfc7f0992
BLAKE2b-256 checksum
How to use checksums
5773bbc1170eb87317f47c1ecc2e10a89597c5fe5dbdcae6444b0791ddaf935e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

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

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

Download URL zen_engine-0.29.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bf357ff4a03130627c651834be981cf8d80c6297b2abd99b9cdbfb97bde4afa8
BLAKE2b-256 checksum
How to use checksums
5f434f8aede34e33363a0ca566438e62aa58a813dc4fcbd7be4fb9113667c082
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9fe57ea16e5f4f685cbe229619758c273fcd35cd3fcc2400ea8ced7c4fd2f251
BLAKE2b-256 checksum
How to use checksums
746848062812da6c7c93144eec757a4b289f02ca881969d32ce6cf0ddeaf44b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
93f0460b43acf7104979b9adde7881e354c2815c989c4c08697d012631edb87e
BLAKE2b-256 checksum
How to use checksums
41c664e1eb48df22d0b8e4ebc7db991cc45a4b1e753b4025bd8bcc84e030245b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp311-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5ff606ffc3909a26eaea85322a09daf90c2be77c0699afd13ab75cce3c33eab9
BLAKE2b-256 checksum
How to use checksums
53c7e83cf2b8b2ec219d2fceb164657e45eb685b571df87462de26783006ab0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f0a3bcf38085e4b88714a6674b462e9d7e80eef49edd229ab53dd01369e6abcc
BLAKE2b-256 checksum
How to use checksums
b4740725cb9171747c41c901f70e3e415df8e6915cdb90570a96c17a302b3ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
07f74e43c769a1a595980a6da7052336eeda47adfc3f85398eaf4e502b947ef7
BLAKE2b-256 checksum
How to use checksums
11559663fc6574a169a1ce67b4793dfa5aaf5ce0112d2012bebe7042cf8033b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4d469fa3c204fa17035876830916932b399c765448736ed9fff6aa60be575d58
BLAKE2b-256 checksum
How to use checksums
9e66bf73f0df86fd147310efc4710d4d0def5942aa974376846d77f5a7185aca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b5dc1b41d70545627da44d53e2d9c9b708b27abae607cd2abc050a21314145fa
BLAKE2b-256 checksum
How to use checksums
46d3a8bfdc32040184a78cd055c4f1e0f566ff2e9fded02bc0b133b80b40dd91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp310-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
db3158211590ec3457d6b48bd898971173233a247cae1d3f94734e672d88a3a1
BLAKE2b-256 checksum
How to use checksums
c784551fa0f50d36aef064f1e0865c238d320b6ef59078851c34f34b4c87de5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8011ca633efbe1f8a5e75ec807f845188d5d2ee45853422d44c76bce70bc7889
BLAKE2b-256 checksum
How to use checksums
99b8c4447b865840ab20b7bd6f581ef5a909bf742ae8e4753a98ff94eebd3e0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3e420b9dd4e3377f30ad3f040259a97a0f9a7c58e3de9e9a523ca0da265d50a5
BLAKE2b-256 checksum
How to use checksums
5291ab4cab5a5ab20ee27a8da53e86ccb96292c4ca2b9f751cab50a06ca25846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c0fb3d78f499bf097626a5ad705fb83b005c36d17792166892a1e5fd234308dc
BLAKE2b-256 checksum
How to use checksums
141b2e83bc15e93bac934b104df771076cd8f2109e08cca1ed38cd146a202936
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6eb9340ab97bc0fd9e827701de438505649d08d29c17042f87bd8402983b6c5e
BLAKE2b-256 checksum
How to use checksums
5ef3b24cbabd566a8c08f23c55190547cdd678f61907b18ad5c1591d38893dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp39-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c2d18f4d87e4fab94f84da78dd002100b36d6ef1669e4621e5cef3041e87dbd5
BLAKE2b-256 checksum
How to use checksums
01162fce24966752f9a01455f38644bfc0972f4339f34de3a749275189e62a64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5ac4df50f3e286fe426d15ae9e4ac7f0de09f9271a74a30541c18d6be211bf05
BLAKE2b-256 checksum
How to use checksums
2adfec8ea845f814f855dc9e175d4927723b13a2d857a49ea950f6213a2a38d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a0dd6aa5fa46977ee1ec6ea9f148309426a2bf1e1ba0d3a4d801660354f238f6
BLAKE2b-256 checksum
How to use checksums
adb81bd1d388818a7d678f7b830d3e14a9d8084afe666f5f522ec83c26e4415a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.29.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL zen_engine-0.29.0-cp39-cp39-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
56aa56fa999902ee232ad509730a2f7cc569908bd5c3bf2bdc7993087c955923
BLAKE2b-256 checksum
How to use checksums
02b519e3defcbd72183970f14422fb52de4e992f230c4e95d4c42761e9475564
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

Release files / zen_engine-0.29.0-cp39-cp39-macosx_10_12_x86_64.whl

Download URL zen_engine-0.29.0-cp39-cp39-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a438245106f97bec069693721615c1307d3c3bc13133bd4c143eda1253e51e0c
BLAKE2b-256 checksum
How to use checksums
e55c662a0319434bd6210657ed030b15fc982fea332c0612e44834b2e3f9d763
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
0ea2a277c7ddcb7a0badbea8909eff298c56149de57b1c8a6523917aeaf44933
BLAKE2b-256 checksum
How to use checksums
a774667377e9ad92bbb0587b4f55c8a64fe33a3a0a746fa5eba820f102a1e261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3a7c26b340acef988c0624f71cabc6da98dbd22cbd2d46c07e9951359ef1868d
BLAKE2b-256 checksum
How to use checksums
915da4fe39fc20737b1e90ea67945a32d0325053ad0bc3a70c24c5ad43e6c51a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5df5618aee6c0096d3e97ba9f6d74aabbfc25437b58be4e557eb6cfcb8a0f109
BLAKE2b-256 checksum
How to use checksums
99c11957814e64703920ba6825b259320f3513343572e8d9d2f0f32f9b4a71c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
6f09f0ac86d6277d8be71c2fb6bcb77b2504339806ff9b24c147e6a447ce8ad0
BLAKE2b-256 checksum
How to use checksums
a79c74030339391d3733fc530157ea22f7aeeb4e578b62bee676807a0c1825a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
01183c2e7fbd744beb67a51bb4d1ceb22071244eb6adb51738fd04876d98e772
BLAKE2b-256 checksum
How to use checksums
a6d597ef76cab2ba2dd08657c8b6827b1e153ce0dee125e3ff2b0fd095991192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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

Download URL zen_engine-0.29.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2661cefe18dbc4e3a1dc50a1bfc9c2df297b2502f17fa0deb607cc9dc095ebca
BLAKE2b-256 checksum
How to use checksums
5c01f342a47aec66944f54637235b17096455fa32b2b42fb98e45c4b42c9d8c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.4

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.29.0 This release

34 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