Skip to main content

Python actor framework for heterogeneous computing.

PyPI Latest Release Coverage Build Status License

What is actor

Writing parallel and distributed programs is often challenging and requires a lot of time to deal with concurrency issues. Actor model provides a high-level, scalable and robust abstraction for building distributed applications. It provides several benefits:

  • Scalability: Actors easily scale across nodes. The asynchronous, non-blocking nature of actors allows them to handle huge volumes of concurrent tasks efficiently.
  • Concurrency: The actor model abstracts over concurrency, allowing developers to avoid raw threads and locks.
  • Modularity: An actor system decomposes naturally into a collection of actors that can be understood independently. Actor logic is encapsulated within the actor itself.

Why Xoscar

Xoscar implements the actor model in Python and provides user-friendly APIs that offer significant benefits for building applications on heterogeneous hardware:

  • Abstraction over low-level communication details: Xoscar handles all communication between actors transparently, whether on CPUs, GPUs, or across nodes. Developers focus on application logic rather than managing hardware resources and optimizing data transfer.
  • Flexible actor models: Xoscar supports both stateful and stateless actors. Stateful actors ensure thread safety for concurrent systems while stateless actors can handle massive volumes of concurrent messages. Developers choose the appropriate actor model for their needs.
  • Batch method: Xoscar provides a batch interface to significantly improve call efficiency when an actor interface is invoked a large number of times.
  • Advanced debugging support: Xoscar can detect potential issues like deadlocks, long-running calls, and performance bottlenecks that would otherwise be nearly impossible to troubleshoot in a heterogeneous environment.
  • Automated recovery: If an actor fails for any reason, Xoscar will automatically restart it if you want. It can monitor actors and restart them upon failure, enabling fault-tolerant systems.

Overview

architecture.png Xoscar allows you to create multiple actor pools on each worker node, typically binding an actor pool to a CPU core or a GPU card. Xoscar provides allocation policies so that whenever an actor is created, it will be instantiated in the appropriate pool based on the specified policy.

When actors communicate, Xoscar will choose the optimal communication mechanism based on which pools the actors belong to. This allows Xoscar to optimize communication in heterogeneous environments with multiple processing units and accelerators.

Where to get it

PyPI

Binary installers for the latest released version are available at the Python Package Index (PyPI).

# PyPI
pip install xoscar

Build from source

The source code is currently hosted on GitHub at: https://github.com/xorbitsai/xoscar .

Building from source requires that you have cmake and gcc installed on your system.

  • cmake >= 3.11
  • gcc >= 8
# If you have never cloned xoscar before
git clone --recursive https://github.com/xorbitsai/xoscar.git
cd xoscar/python
pip install -e .

# If you have already cloned xoscar before
cd xoscar
git submodule init
git submodule update
cd python && pip install -e .

APIs

Here are basic APIs for Xoscar.

Define an actor

import xoscar as xo

# stateful actor, for stateless actor, inherit from xo.StatelessActor
class MyActor(xo.Actor):
    def __init__(self, *args, **kwargs):
        pass

    async def __post_create__(self):
        # called after created
        pass

    async def __pre_destroy__(self):
        # called before destroy
        pass

    def method_a(self, arg_1, arg_2, **kw_1):  # user-defined function
        pass

    async def method_b(self, arg_1, arg_2, **kw_1):  # user-defined async function
        pass

Create an actor

import xoscar as xo

actor_ref = await xo.create_actor(
    MyActor, 1, 2, a=1, b=2,
    address='<ip>:<port>', uid='UniqueActorName')

Get an actor reference

import xoscar as xo

actor_ref = await xo.actor_ref(address, actor_id)

Invoke a method

# send
await actor_ref.method_a.send(1, 2, a=1, b=2)
# equivalent to actor_ref.method_a.send
await actor_ref.method_a(1, 2, a=1, b=2)
# tell, it sends a message asynchronously and does not wait for a response.
await actor_ref.method_a.tell(1, 2, a=1, b=2)

Batch method

Xoscar provides a set of APIs to write batch methods. You can simply add a @extensible decorator to your actor method and create a batch version. All calls wrapped in a batch will be sent together, reducing possible RPC cost.

Define a batch method

import xoscar as xo

class ExampleActor(xo.Actor):
    @xo.extensible
    async def batch_method(self, a, b=None):
        pass

Xoscar also supports creating a batch version of the method:

class ExampleActor(xo.Actor):
    @xo.extensible
    async def batch_method(self, a, b=None):
        raise NotImplementedError  # this will redirect all requests to the batch version

    @batch_method.batch
    async def batch_method(self, args_list, kwargs_list):
        results = []
        for args, kwargs in zip(args_list, kwargs_list):
            a, b = self.batch_method.bind(*args, **kwargs)
            # process the request
            results.append(result)
        return results  # return a list of results

In a batch method, users can define how to more efficiently process a batch of requests.

Invoke a batch method

Calling batch methods is easy. You can use <method_name>.delay to make a batched call and use <method_name>.batch to send them:

ref = await xo.actor_ref(uid='ExampleActor', address='127.0.0.1:13425')
results = await ref.batch_method.batch(
    ref.batch_method.delay(10, b=20),
    ref.batch_method.delay(20),
)

License

Apache 2

Release files for xoscar 0.3.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 xoscar 0.3.0
File Size Uploaded
xoscar-0.3.0.tar.gz 126.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for xoscar 0.3.0
File
xoscar-0.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
xoscar-0.3.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
xoscar-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
xoscar-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
xoscar-0.3.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
xoscar-0.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
xoscar-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
xoscar-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
xoscar-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
xoscar-0.3.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
xoscar-0.3.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
xoscar-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
xoscar-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
xoscar-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
xoscar-0.3.0-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details
xoscar-0.3.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
xoscar-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
xoscar-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
xoscar-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
xoscar-0.3.0-cp38-cp38-macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 50.6 MB

Release files / xoscar-0.3.0.tar.gz

Download URL xoscar-0.3.0.tar.gz
Size 126.0 kB
Tags Source
SHA-256 checksum
How to use checksums
aa04b6d3bbd470a8c9fe98704a636e7614c0b4d0f462470c0ba355f4193da8cf
BLAKE2b-256 checksum
How to use checksums
206b9e69ae616a7ff042bef159c6e9ed5b9ddb99c0eb203d2366a0bf95328fa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp311-cp311-win_amd64.whl

Download URL xoscar-0.3.0-cp311-cp311-win_amd64.whl
Size 1.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b84c66d6a9ca220835df4c342fc299a8acf08b5d92c3147bf0df90a9f927f175
BLAKE2b-256 checksum
How to use checksums
51b40f342feb15a8522979917a4e5b25e3e3c9127d6fd8d83e350f081fab0c0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xoscar-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4c39bab7623222061203cee9853c8267b69b5c1838eef10b50485bdacc76ad48
BLAKE2b-256 checksum
How to use checksums
8e0640593e95d52ca84e6abd428d8a53ffec0447ce13c621507d06d3b9eacbca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xoscar-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
38a9e013a8e9f4c9b9197a24f7e9a99817e82124a6aa1d7e57d577476b4c0296
BLAKE2b-256 checksum
How to use checksums
ab6a7bb79e6ba1d539e8ac7b1e257525ae8c7afb02d60ebd207402ddef77af4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL xoscar-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
cd5b16a6e0436c2d2e348b8e68376851f7042d4f868c3ed0536a31d9de04387e
BLAKE2b-256 checksum
How to use checksums
c9ee61b808a7c03de16abd92947cf8b7326d336dbb5e1434227120d22686eafc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL xoscar-0.3.0-cp311-cp311-macosx_10_9_universal2.whl
Size 2.1 MB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
78d7788b332e751cba7bb47ec5254be308f0b825ce4abd2ff7de5f5aa6710739
BLAKE2b-256 checksum
How to use checksums
a37b993b487b53f201bf12b11754ec7fd043aa776b8ac9334587931f468a7d3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp310-cp310-win_amd64.whl

Download URL xoscar-0.3.0-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0097b762e752dee5bf74b6724a57aa5bd2534e1f63195f42082e2ba5b80ac094
BLAKE2b-256 checksum
How to use checksums
d56ca073d6a530c0fe449146de918593c7a6350851bd97267875e530edf12645
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xoscar-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d57a4042aed97b33cb7c7d0b5d20ecda60c84a8b005123e4d11eed508d459890
BLAKE2b-256 checksum
How to use checksums
b02e1f44131061fd26174a1d52c7c0255a7d24be077144b834f9c7191f790ce2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xoscar-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9217e988c558673b6af3df9084ed60854dd91cbc4e409e960d338025bd2474be
BLAKE2b-256 checksum
How to use checksums
91b7e2eaa132810fbd1418e6a5209004a22fee25c399875126e14ce30f301c09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL xoscar-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a202e1d22860bdf97f518f5278338dc15bef26a30bb7ecad5d98d53efd8a5318
BLAKE2b-256 checksum
How to use checksums
55ca7245e1b9a820988741cffba27694892d0ffcb6daa759cd2778eb66fd3fb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL xoscar-0.3.0-cp310-cp310-macosx_10_9_universal2.whl
Size 2.1 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
88cba411df1db367070904b9ac88ab38a1fe771464d529215988f2310698d735
BLAKE2b-256 checksum
How to use checksums
d46338c4d430fe9330f5106f0c93b3fff76e9e96d0e26f3ffcbf71a2a8602691
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp39-cp39-win_amd64.whl

Download URL xoscar-0.3.0-cp39-cp39-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3f2c5e254b6cc80248b1a3aafdcf1058169ea5787cd3a46d011a0c53491a12c2
BLAKE2b-256 checksum
How to use checksums
0dce9d27e65cf79eabc7c01422fb04ce7491a9d97d2b41580e1add43b46b692d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xoscar-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
83e0a389d6dc9dd7f9badec2b6b702b9b2b432055c3c79af03eddcf31bd3c6d9
BLAKE2b-256 checksum
How to use checksums
37031fec76f615f9149c492287cb9b1e29e050210568a5dbff23cc03e1724de8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xoscar-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
39df0d540f2646c2d2531086e34bf9b671b171251777c8062127b468593af27c
BLAKE2b-256 checksum
How to use checksums
a6c7a963125394dbb05487f444e3b222250ddc1097a0eb9d3dcd2bd0b83f1554
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL xoscar-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
93629a46428671bcb16c9668627b338fb8a6e2d52dd834ae75f306efa83ef6b6
BLAKE2b-256 checksum
How to use checksums
b46aa8f9b7e4bbafb3e8482c4b760eff6e6e587d3eff9a8871be4110bb170ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp39-cp39-macosx_10_9_universal2.whl

Download URL xoscar-0.3.0-cp39-cp39-macosx_10_9_universal2.whl
Size 2.1 MB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d83f4477fad6ddfc001e582e698c46542957fdfb85179f41f31a9d1b1183201a
BLAKE2b-256 checksum
How to use checksums
dadc3aa1551bd3eec5d555827eb13f913c54c0ab7968ffdefa0ed34ef70c0c4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp38-cp38-win_amd64.whl

Download URL xoscar-0.3.0-cp38-cp38-win_amd64.whl
Size 1.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
f444f12c77a690041e34e9f4c718e1524a104d41b95c4de171349de918f02e71
BLAKE2b-256 checksum
How to use checksums
eeb507ec3f911951a85cdc674c3d3c0a9654a41a1d7f3c9f3c2b2443b484eaf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xoscar-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.1 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4ab1d082bdb998a1e90a73426186ba1f2539ea9a90ffa96d6ff015cbd0598e0a
BLAKE2b-256 checksum
How to use checksums
64edf41f4cfcaf3f3dd0000ec121e9ef2f2d07864417291e18078bce99b48c0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xoscar-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 4.1 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8466c1e0d36cac36302335449b1ff55b8fc5025343f059ba86e6bd2125692aad
BLAKE2b-256 checksum
How to use checksums
7df5463f829605f34f07d39523f5fa5e40551920a08104f2ac17f5ac02a8aabc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl

Download URL xoscar-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b2ac924cfff3cc58d78c40ef232640b54ba711842163c8b0a7a4b438e39ae710
BLAKE2b-256 checksum
How to use checksums
029f41faa4d09904a0f816ce53bc47fb2f8a394e4de4a85c238ee35742144bec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / xoscar-0.3.0-cp38-cp38-macosx_10_9_universal2.whl

Download URL xoscar-0.3.0-cp38-cp38-macosx_10_9_universal2.whl
Size 2.1 MB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
b9c187509e74d8af4425d84e45b0b5c7cacf7d875d651448ba995cccb06aca21
BLAKE2b-256 checksum
How to use checksums
8045927a60a9c69dfbe6c13b7df8d13184c8b34a21aed6dde70870d84a9da71d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

0.9.9

26 release files

0.9.8

26 release files

0.9.7

26 release files

0.9.6

26 release files

0.9.3

26 release files

0.9.2

26 release files

0.9.1

26 release files

0.8.1

26 release files

0.8.0

26 release files

0.7.9

21 release files

0.7.6

21 release files

0.7.5

21 release files

0.7.4

21 release files

0.7.3

21 release files

0.7.2

21 release files

0.7.1

21 release files

0.7.0

21 release files

0.6.2

21 release files

0.6.1

21 release files

0.6.0

21 release files

0.4.6

25 release files

0.4.3

25 release files

0.4.2

25 release files

0.4.1

25 release files

0.4.0

25 release files

0.3.3

21 release files

0.3.2

25 release files

0.3.1

17 release files

This release

0.3.0 This release

21 release files

0.1.3

21 release files

0.1.2

21 release files

0.1.0

23 release files

0.0.6

23 release files

0.0.3

23 release files

0.0.2

23 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