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

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.24.3
File Size Uploaded
zen_engine-0.24.3.tar.gz 157.7 kB Details

Built distributions (wheels)

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

Total release size: 98.4 MB

Release files / zen_engine-0.24.3.tar.gz

Download URL zen_engine-0.24.3.tar.gz
Size 157.7 kB
Tags Source
SHA-256 checksum
How to use checksums
57a2d5d239f5c8a1e1c6bd849d37dd24dda2c9c6b2e8b6fcd99b757004efd2dc
BLAKE2b-256 checksum
How to use checksums
024da8c7d1998ec85d46f5cfc8118f0af26ae556642f198a3e979e22606b8656
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
1c28cd264e6fe8345a87ecc4e1bb70e3d021d2f64d29291bd635301f2a29be07
BLAKE2b-256 checksum
How to use checksums
f0ecebdb83d265ba0e908ba1c6a39176febf011ebb28d57b3b1b56037d6837ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
5da1776126af24413e500d6453b25a5f09b08364f397c71941af6c83964da13c
BLAKE2b-256 checksum
How to use checksums
00e281f85690ff2507251dd27a47cfe52da869015d7dabc3a6f06fb57a4ea141
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
833034286759d663c293622d04d5583260306db60d4fae71e094c5ec79278421
BLAKE2b-256 checksum
How to use checksums
01a099707dcbfed3a59fad24bfee9913abd27eeadac378e8286964151c2799cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
72f6f6bac75b4abc98af2ee4c5005cf3138f8d465e1aa566ced40ab9ccd30876
BLAKE2b-256 checksum
How to use checksums
e68d7b68c7957b4ba3638bbe09df8895968126099e9783a060e7de45f05618a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
9955375b26849e6d5d9f41d096c3823bc667b05a4d1d98e3272ff26b35e80070
BLAKE2b-256 checksum
How to use checksums
400d178a9397bd1f0d5df07b30b25e31a7fa6d142fa7948d85567992b0ea5240
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
d337e6a3195ccde2dcac8175a6b7fec6b893041c00e1425d2f307a17a1e4dde2
BLAKE2b-256 checksum
How to use checksums
5e3e2ace0e7b4ab18c90de60524766f6ad9ba52ce4fb21319bd955ce6dfc6412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
382c156bfa9ef18c83c00abb4b95d9568bc018d94a1766a5aaa866cb28e6d41c
BLAKE2b-256 checksum
How to use checksums
e69544e30cafb086eea10e1a898d77c0790941cb157f25281a5e83d9d255db71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.3-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
bde36b6570871701f62126d9718fbe6f7798ac9f44dfa0e0873a9fa48ad924b1
BLAKE2b-256 checksum
How to use checksums
6f539a7675b345ffb49de969394aa5af6030369aec123af5042e9a0d741c9854
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
30b7280bd020401bd97064b99596bcd520c3bd844637ac70b810c23eb23b4206
BLAKE2b-256 checksum
How to use checksums
909aaaa6a3399da888289c17745c293ce59140b80934425c13b0d13887f2c4fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp312-cp312-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
65b04f43f01807942458825506f6bdeca0d10cdd1282bd50b7020ed8e0f3cf18
BLAKE2b-256 checksum
How to use checksums
dfc4d1ca62094df1d7c623fb2542ce8af1dd7bf708e249d0c1dafb27b62cfc74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp312-cp312-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
979138d3a68ade38c5dc16ab8d9b5585f793ab283ac92a8ef46de2769e669c32
BLAKE2b-256 checksum
How to use checksums
973e9b10167ac2b139f02c30f9755eb61ec0cfb47187c3ce9135a307cae99a92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp311-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
71b3adc9db28cf00884799acf6b6884e71b0c0e915ab629371c7c0562fd289ae
BLAKE2b-256 checksum
How to use checksums
36a78e8bc8b26cedf55a7ecdc7d7e8c25c1de9f495003f455cdf8d6fc76cfae6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
3f929a6d42e53127cae401d6575bca87a7913a674efb4e94e952fa4b86d9fa28
BLAKE2b-256 checksum
How to use checksums
bc1c80cc53aa501f8be8738d707d9136ca76487a11a46ff9d1a7e07045660a97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
d5a80cc7eea69eb4cd050cfbd6d0a2c30b24a8d5748ef3d80e70550b8dd4a5cb
BLAKE2b-256 checksum
How to use checksums
d3a7b92c51a33b16eb538176a5cf65b1523db70b0ef4bce998193e490107b3bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp311-cp311-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7a7504c0aad5cbec70d6216f849faf8bb79ae7cc1f5f9b7dbe751d695165ced4
BLAKE2b-256 checksum
How to use checksums
a0200e8a7ca59375eaa9c150f371cc36fd17e573d83529db31696e49e46d6ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp311-cp311-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
602e91762b5deee322d710f01942414af1127cdaf80d60e4406062ae273672b2
BLAKE2b-256 checksum
How to use checksums
744087792bb1fbeeeae2186429a2dbface985ae9b5b3eed43bd4622948738d38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.3-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
3eb7392b335bc689e27f33369af588f12ea56cdd267cb325dbd2fe970b768a02
BLAKE2b-256 checksum
How to use checksums
dc37b0cd5fcb4a91a842428929527a0476101518fba291df535681761c2d9503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
9315926f8d03b41de7278e73c98268d1bae75d559450104502d823bc86224dba
BLAKE2b-256 checksum
How to use checksums
f6d5a97531cc7e202446bf5282cc380026f46d41dbcb8df6464d9e034bd10d6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp310-cp310-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0d05013abedb8c6bacda29698d9384b2cded5788abe55e9c3a886a1788705e8f
BLAKE2b-256 checksum
How to use checksums
66297cfdddaa068a7992c25e76c4b6e2134ebb873e0ddc215dda679575c1c212
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp310-cp310-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
41b3d17172f3255a55e60bcf3044331b31168b202a5212518ea5b49a70ed18cb
BLAKE2b-256 checksum
How to use checksums
9ff4d21b4a710b443f19fd52d1fa8f861854a4eab8aa555c318972b0ab231d1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.3-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
414d4a389007120d8789da93ada4023aed28e9f4b91cefdd7a11347cdc9ee63d
BLAKE2b-256 checksum
How to use checksums
970a29f5734095ae7d6d7efe1586911a10d741469b5488cab25bfc8ef3e74c88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
6178897d11a4d4b9002cb1c2e09efc72e3fea5f2c64751ca04739392e87aeede
BLAKE2b-256 checksum
How to use checksums
6689ac883d4c087b87f128e5af22aec68d3188fd88e2336244ea486fdf3c98b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp39-cp39-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4104c96a064d0a67c1afc447a367cea2917b236e3f95a86d661253eafab8a106
BLAKE2b-256 checksum
How to use checksums
e097da86eefeffd0bc4bc35d39498818c365ac8ea05589e67c19cb660616e64f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp39-cp39-macosx_10_12_x86_64.whl
Size 2.9 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c74c263a3a81a71d181aab452b70d494f3163adddf193d6a7bfdd73d4a2a9034
BLAKE2b-256 checksum
How to use checksums
6105ec85c030082cbc136f78780728b189eb7d1201130f0c9760fbd36befb3e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp38-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
021effed78d0f361aa3edc6782fcff480d0cc21e5d872d5426cf69335cfc9a6f
BLAKE2b-256 checksum
How to use checksums
245c8500970e98ab93a2645799ab97a2fcd2a4f6248f3a1e371b838cb320461a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
af0c3cc03ff7d6357d7710ed734b26d7d0bd469f507c5c2421a334bf38f42083
BLAKE2b-256 checksum
How to use checksums
c765b8e0ecd228bb8d09dfb2ed18aa036e8cc355ed3ec9a44a123acb917c3aff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
2ee2415686310c4cc41e71144ba68cacfa0890c4d87fce4c502c7a1a1b8d265b
BLAKE2b-256 checksum
How to use checksums
c64fa7263e0063d6e25ccb0932a70ab1f4487b4c1ced708354b5fcd9d49ea25c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-cp37-none-win_amd64.whl
Size 3.1 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
3a889f91514c9a75a77157cbd4205f117b417d8d3ff62f2dcab5b8c59faa1c6b
BLAKE2b-256 checksum
How to use checksums
889712ffe90efb86cecc0dfc7299fb34fee6de0a33942fd1d0193ee371ea9cd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
165cae15a0e05a50b31d47eb1dd303cb9b2d00fa123ea4925aea2c4a6920093e
BLAKE2b-256 checksum
How to use checksums
7853a455a6fc2980303ba4a3b34dec3587510c1add27b860b6b72d7600c31e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.3-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
c4ddfbf0ee26705bf79cc05165afeb2e9d4c4e75a79ef95038daffdc4aa1812a
BLAKE2b-256 checksum
How to use checksums
476d4be3d1e230b23df0ae7b0e4543699a7b43c29d649a8de701f75858b271df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.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.24.3 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