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.25.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.25.0
File Size Uploaded
zen_engine-0.25.0.tar.gz 159.3 kB Details

Built distributions (wheels)

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

Total release size: 98.6 MB

Release files / zen_engine-0.25.0.tar.gz

Download URL zen_engine-0.25.0.tar.gz
Size 159.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1e51f8f4d665c142548e19b3562ca55ac808149eb4cbd366ae8858f3439ab59c
BLAKE2b-256 checksum
How to use checksums
3f1ea59354cfae7d89773bc930ce06ed2a0a21833e3208a8d7fec17e57777175
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.25.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
63aea4a8cc928497e9d8d068c9c63de3e555276ed936e651f453b2e247732a19
BLAKE2b-256 checksum
How to use checksums
9dd5b2595bbd0ce2774c102a642ac9133ed828aa0ebde9eaafbb31c84e756b0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.25.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
38d9f4c955fb5a216eb87328988c0ed3e5708e35cd2c601a328fe007956caa77
BLAKE2b-256 checksum
How to use checksums
819979509443ea5813c353742ec6f8334c52871d14a5947960d1fbc870c5344f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.25.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
4cc3697e41957d8423ed2a8bb36996660d5cc894fe4c8647edd18ad09a2dea48
BLAKE2b-256 checksum
How to use checksums
490c9f1a78b98afc04f78fe66e8942fbe0834dc71dcd6404553a3933af737628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.25.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
58fb49afb595c278ec1e11accdf9cf8f2a8c45c02419591d5822f96d69f5e622
BLAKE2b-256 checksum
How to use checksums
5385ef825044c3610567696899c9919f924ef3aafbfb2ca893d4c57e2f142ace
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.25.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
0d966ace6a2777c19438a158da3d29aa4d3ec4c086df51d5faa2ca8874901e66
BLAKE2b-256 checksum
How to use checksums
4e2cb34d6741fdd77151130dd69f106eb50e1299b7b9cbad4bf080a370b5c6aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.25.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
319770261118cd86f596d495e1bab73413f5d18c3476780c22a4c3aabd56db0f
BLAKE2b-256 checksum
How to use checksums
86bb7fab5db9e3a0ce3ef85555bd2fa2598305579d33250839a622ebc7a82a8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

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

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

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

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

Download URL zen_engine-0.25.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
900856a8aea48dd649fede7adc60402d9d57b06c803fcfcbc51fd2733f135a4e
BLAKE2b-256 checksum
How to use checksums
5760edaeea0512007fc4a7faceae9b446102f03929a97b767eacbd510dc1de2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.25.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
9c80261c3a456af91911668c2ef6f5d8ccd3f728a7f0d556940a8467dc81390b
BLAKE2b-256 checksum
How to use checksums
4f6d59cfe7af7c4ec790719c7dd0d51e1a7fb3499965d02e2bc0794ce2acdf44
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.25.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