Skip to main content

xecs

Documentation:

https://xecs.readthedocs.io

xecs is a Python library (written in Rust!) for a performant entity component system (ECS). You can use it to write simulations, games or any other high-performance piece of software.

If you are familiar with Bevy and NumPy – the API of xecs should be familiar to you.

The goals of xecs are as follows:

  • Fast: Operations are executed in parallel as much as possible and the library is written in Rust to be cache friendly and performant.

  • Simple: Data is defined with a dataclass-like syntax and systems are regular Python functions.

  • Typed: Types form an integral part of the API, making code clean but also easily verified with type checkers.

  • NumPy-friendly: Our data types can be used seamlessly with NumPy.

  • Python-friendly: User code is regular Python code, allowing full integration with the Python ecosystem. We avoid things like Numba which cause pain during debugging and limit use of pure Python libraries.

Code Preview

import xecs as xx

class Velocity(xx.Component):
    value: xx.Vec2

def update_positions(query: xx.Query[tuple[xx.Transform2, Velocity]]) -> None:
    (transform, velocity) = query.result()
    transform.translation += velocity.value

Installation

pip install xecs

Metadata

Release files for xecs 0.9.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 xecs 0.9.0
File Size Uploaded
xecs-0.9.0.tar.gz 58.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for xecs 0.9.0
File
xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ IBM System/390x Details
xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ PowerPC 64-le Details
xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-32 Details
xecs-0.9.0-cp311-none-win_amd64.whl CPython 3.11 none Windows x86-64 Details
xecs-0.9.0-cp311-none-win32.whl CPython 3.11 none Windows x86-32 Details
xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ IBM System/390x Details
xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ PowerPC 64-le Details
xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARMv7l Details
xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-32 Details
xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.7+ x86-64 Details

Total release size: 17.9 MB

Release files / xecs-0.9.0.tar.gz

Download URL xecs-0.9.0.tar.gz
Size 58.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ace980f9ba64361254b67f1ef32e97b7eaf093aade4115a7c53accfdff2a55f9
BLAKE2b-256 checksum
How to use checksums
5e2489b39e6099aa03bc9fbecc72437b33058a8634d2f695bc3abe352abc8e84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xecs-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8c2f689a6221b23283deaf7835e1cea33f3292a8f7db8983624e26c106741ea7
BLAKE2b-256 checksum
How to use checksums
6e060442e69d542edf82caff651cbe278ca540907cc757f1a1c68ef0382cc071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL xecs-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
f26002df0fde6489cdf49bc2f1247acad4e75838bf5275d9a5afc22008a3f06b
BLAKE2b-256 checksum
How to use checksums
17ca8db0e1394b0cd2ad278c3451bcbbfc9d769cc1b6c6ad62fe3f10ad48dd54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL xecs-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
82c6a28a77f2a0c2fd4b60c0a5a4aa4ee5afd099d946b56f9e90f2202145eaad
BLAKE2b-256 checksum
How to use checksums
3c6c43ca3a18163569614a92f7b62435e45925078366097ec75d39c5d6eb53e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xecs-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e00342a1251b2e85b70b109645e844b40344ed11639abd23957f2138dba0360a
BLAKE2b-256 checksum
How to use checksums
103cb0fcc119fa88a5feba60cbfcdf07c7e164c9ea451a98ea318832f1c68eb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl

Download URL xecs-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
a37b1cff0c2d5274f40b2e477095555490ac9b2cfdcb8f4ec7d01ec2eb509e36
BLAKE2b-256 checksum
How to use checksums
44a6bed8a967eb57dab4c220b41a958c3c744ce35bc6f2a4bafc5bf71f28c030
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-none-win_amd64.whl

Download URL xecs-0.9.0-cp311-none-win_amd64.whl
Size 336.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
61f7b5832e25fadda22554ee5931e1e369dc27c251a49d51bc91231da40a7f8a
BLAKE2b-256 checksum
How to use checksums
c37437b6fa29a1267e0648cc6706212fb7a54772aec47e6a7231809459c4fbe7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-none-win32.whl

Download URL xecs-0.9.0-cp311-none-win32.whl
Size 311.8 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
124c2a5b2b0ab32be0d68103486ea5627c2f619de735e960458f216f4c5061d3
BLAKE2b-256 checksum
How to use checksums
44bef49946fb9306dba0cf2356db363fb5d501839ffa25a7dc3ea11e0f5a2cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f3bef44240ef1e5aa4965b34b9228cc083f86594579b67258801d7b58573ed77
BLAKE2b-256 checksum
How to use checksums
d1938cdacdf436e8f0874026be6ba72dffd442ce3751ab1841af918f2d231d15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
f8cbbd1ccb722a6c55a2d12c9a1d1c95413dbe736042e994d13599c6b05b82ba
BLAKE2b-256 checksum
How to use checksums
9d10dee9a9206adf23ad433389e7fdaf053bda7bb19715bbf4b0d54bc04d9a00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
fe75b846482bd28d09ff542d0bbabe870f7f08acb11308eab376027c41b818d9
BLAKE2b-256 checksum
How to use checksums
4d33d7e618668fd9f5aa94d58e8bf67c7c9acec267366ba8d72e14870eecb453
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARMv7l
SHA-256 checksum
How to use checksums
0c0fb5128a6aee654dda330bfbeb9136d75d66cb2ea89b6eb983ccec00db9e33
BLAKE2b-256 checksum
How to use checksums
b77c684fba3efbd67d7f493ba36c6cce21566a44e6d947fda47d5c9f4077fd0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0a2f25a06d00cab7dac7414a76b7a219c1769a40094d68bd21114036bdbdfc0e
BLAKE2b-256 checksum
How to use checksums
4b0b39d99691471c66566a1af54ccc4b3c98e5cd58621345b468fcffdae29cd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl

Download URL xecs-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
17d613ad3cafe0a77d7d92080012a76fd74ae1fd69482448adb32b73469ad59e
BLAKE2b-256 checksum
How to use checksums
d657758b5d709019013653cd7dc82b1ecb8f64d4cdb64260a44a3c5de9a147bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL xecs-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Size 478.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
746a36394cb913f4ad11f21407c57acf552d53af9881012e1f89e00d6c634d2b
BLAKE2b-256 checksum
How to use checksums
4f6a24e32305427ecf5038373eb7aad5ccd757ccabe63eea6dde7c931215d9d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release files / xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl

Download URL xecs-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl
Size 494.5 kB
Tags CPython 3.11 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
fabb3aadf7545a9d366e336a25fae5824f93f155e5da2ba505b6fb63632a830c
BLAKE2b-256 checksum
How to use checksums
b4f32c8aec17162d8208ddf301961657bb3933edb96c5834e21b0757269e8633
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.3.0

Release history Release notifications | RSS feed

This release

0.9.0 This release

16 release files

0.4.0

16 release files

0.3.0

16 release files

0.2.0

16 release files

0.1.0

16 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