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.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.24.0
File Size Uploaded
zen_engine-0.24.0.tar.gz 157.4 kB Details

Built distributions (wheels)

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

Total release size: 101.9 MB

Release files / zen_engine-0.24.0.tar.gz

Download URL zen_engine-0.24.0.tar.gz
Size 157.4 kB
Tags Source
SHA-256 checksum
How to use checksums
84646233837190c363f68834cb2bb71c6c761da6ddc2a117d307a67a239658de
BLAKE2b-256 checksum
How to use checksums
988b76aad4f32c414368a21b01e04a0cb9a2d83b7d8563b7e99bb8b84dc16ab6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
7c0e2267d9ec34a2bb6140b0fe2a2350ae177872518be253e02c48f9b3d976b0
BLAKE2b-256 checksum
How to use checksums
5f8aa023204dac2f40013223843f340778c71b6bdf6363fec155153350ff0d72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
a09b25361cffe7f01706e0be76093162e67e3de7606835a0f932c611afa39a06
BLAKE2b-256 checksum
How to use checksums
35df5a2af5435c7bd0d4b5a9c7f360809530866726b0a557d345887354647348
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
0a1f4831e64804f94df9cce550da65c0caf3e332aa66e3e7a6e1ce92848df334
BLAKE2b-256 checksum
How to use checksums
f737b1f4f1a9ae951c0c18bf88ab2f7595091c87fcbff536e99abaa7c57bf3fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags Linux glibc 2.28+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
a31ce37c01d4e3ff0846dd83cce4495d5ec80a0b1bd13c158e1ce407e1c8d8e7
BLAKE2b-256 checksum
How to use checksums
2bf4da476f595e68b8e6bd3b4155c3f066995bc999a32da8555a6c4a64803748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags Linux glibc 2.28+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
fbee70e7ad588fdab4b928b2740eef67a23bd0a0031bb5ca26da0b62bde10e9c
BLAKE2b-256 checksum
How to use checksums
46fc8b896628a06759cbded622223e2af4cc57317f58710f74b02bfafb6bfe45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.24.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cd4b533d5e2546d8022ab44594c2a856309ba5ad1c077432de9684c385162f78
BLAKE2b-256 checksum
How to use checksums
a5f7749753e4d276c6652d0b579137053877425f03d68cfd82ed900d4902abdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4e014e58b121a71b436ff21b322769788fd173521541fec9bcecf63431958e5e
BLAKE2b-256 checksum
How to use checksums
a046753ba4f870a5c79c40ebf6932f4d7267f0a445c03a2f88a7557b453f3d36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

Download URL zen_engine-0.24.0-cp311-none-win_amd64.whl
Size 3.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6f4598884da0f54175913c82c9ec6aba414814e62cfafdb9133932709b678a5d
BLAKE2b-256 checksum
How to use checksums
c5c5f80c5fbb4ed72b0b94829c54430c9456cfb043582badddfb2f83e4225486
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
92ef669b9782aef7eeb66b8867bad6b1f6b59aff2b80d075726b6680eecada6d
BLAKE2b-256 checksum
How to use checksums
aa46f014f92e6ad1b84226bb5dbe4e10873b784bbcdda529bb719ad9c8480179
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2433172682228a19f71daf51ea451e96ad7929a74788c0c35c6ab007c5214b56
BLAKE2b-256 checksum
How to use checksums
53b968c729aa93afa9d281434543fa61a521fa5f9d0b47870a2588d4cf48e780
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.24.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
91e7cdea9284ad29a7698bad1aae160f047ffea38af5161e08ab62cbac64ebc4
BLAKE2b-256 checksum
How to use checksums
77e95e252a5e53cb145b687a96e17b6066f7c1913ea3b07615510453784b2866
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
56075bf1c4ba7dcffcb070efa28648529fd5b64c085f209887dc41eb03be5154
BLAKE2b-256 checksum
How to use checksums
fabf192ef347e28629dfb2a0376cddba667213024f3882bcf93a054f5cc76e31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.24.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9cb6704dc71f087d09a1056b0dbb269e43fe391b04595789780c788d6fba99d9
BLAKE2b-256 checksum
How to use checksums
eb7c6432af788c76c197f54b130bc3826f14ff86c757ff6ed07dfb08d2173504
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f33f8ae38b8b673225ac0144ffd5ab33ba3ac58b086780c4f64306999311e97e
BLAKE2b-256 checksum
How to use checksums
89b68ae0c1ec9ce59c38d3089dd9b05a4d218d2683c9f17a3c1827f79c666fe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

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

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

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

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

Download URL zen_engine-0.24.0-cp38-cp38-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c063f40006b787e56926f7490f569909870d112ed463a721793e0d37fa3dae7d
BLAKE2b-256 checksum
How to use checksums
ee918cc27bc69b3f53dfcac895a9d3f1823530322b98cd255c68a08e15136fe3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp38-cp38-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
92358400ab7c3d8e3a5e979912d390d1cbe52830aa828e4c28f6423219ea7f23
BLAKE2b-256 checksum
How to use checksums
4f4d695038f0112fb4dcb84b9d418a1e7427b4752b265f02769a3d0dd651af8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

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

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

Download URL zen_engine-0.24.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1148735ebbfe09db026b96494146613715c32d5f39a170331195c616a606411f
BLAKE2b-256 checksum
How to use checksums
0eddfd0d89063bb45cec78dc89e76d93da3765e779f8e8026d7e967591224dae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.0

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

Download URL zen_engine-0.24.0-cp37-cp37m-manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d7677f8b7f01509e0bfbff3f2ef5849f1828820c7bc03fdd4890a81e2df7f2c4
BLAKE2b-256 checksum
How to use checksums
3d0f2abbdf47210da121fa365591a008735b7e2a77cbe6543c6009feaa4e6e46
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.3

6 release files

2.1.2

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.2

6 release files

2.0.1

6 release files

2.0.0

6 release files

This release

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