compio-public
125 subscribers
5 links
Download Telegram
Channel created
Channel photo updated
compio v0.9.0-beta.1 is released!

In this version, 41 PR’s has been merged into the master branch, 3 contributors made their first contribution. Congrats! Currently compio v0.9 is still in beta, mainly because it uses AFIT and RPITIT, which require nightly toolchain for now, but will be available to stable in the coming rust 1.75. Thanks to these newly stabilized features, we can refactor our buffer traits in compio-buf, and add new IO traits in compio-io.

Major Changes:

- Starting from v0.9, the behavior of read-like methods is changed. They now write to the beginning of initialized area of buffers.

- A fusion driver has been added for Linux platform. You can enable it by enabling both io-uring and polling feature. It will select the proper driver automatically.

- We add compio-dispatcher to manage multi-threaded workers equipped with compio-runtime. It is helpful in cases where multithreading is desirable. Consider the case of writing a server: you can accept a TCP connection in the main thread, and send it to worker threads to handle the request.

For more information and changes, checkout the release note.
Channel photo updated
Happy Lunisolar New Year!
Compio v0.9.0 is released! (sorry it's late for 2 weeks)

Release Note | Change Log

The looooong waited v0.9 stable release is finally here! This is the single largest release we've ever made: compared to 0.8.0, 88 PR's has been merged into master branch, and 6 contributors made their first contribution. Thanks to you all!

Major changes:

* compio-buf: traits are refactored with RPITIT. The behavior of read-like methods is changed. They now write to the beginning of initialized area of buffers.
* compio-io: Added IO traits with compatability features to interop with other libs (like futures and tokio).
* compio-driver:
* Fusion driver for Linux: Select the proper driver automatically during runtime. Enabled by toggling on both io-uring and polling driver.
* Global IOCP for Windows: When enabled, all IO resources can be sent to other threads even the original thread is not running.
* Notify handle to wake up the proactor.
* io-uring driver: Now supports 128-bit SQE and CQE.
* compio-runtime:
* New spawn_blocking method: Spawns the blocking task to another thread and wait.
* Low-level controlling APIs: Users can now implement their own block_on with customized logic.
* Event is refactored and implemented with AtomicWaker.
* Runtime can be waken from other threads now.
* compio-fs:
* Async metadata.
* Standard IO (Std in/out/err).
* Requires compio-runtime now
* compio-net:
* Async DNS resolve. It uses spawn_blocking on Unix and GetSockAddrInfoExW on Windows.
* Async Unix socket connect.
* Split reader & writer.
* Requires compio-runtime now
* compio-signal:
* The signal handler is async-handler safe on Unix.
* compio-tls: New. Provides native-tls and rustls support.
* compio-dispatcher: Manage and spawn tasks to multi-threaded workers equipped with compio-runtime. Helpful in cases where multithreading is desirable. May require iocp-global feature of compio-driver on Windows.
Today, April 1st, we would like to announce a new crate: winio, a single-threaded asynchronous GUI runtime. It is based on compio, and is cross-platform utilizing Win32, GTK4 and Cocoa.

Write GUI with winio, and never block the user interface with IO requests in the same thread! Hooray!

Check the source code for detail.
Channel photo updated
Compio v0.13.1 is released!

Release Note | Change Log

We made huge progresses in this release. 38 PR's has been merged into master branch. Thanks to you all!

Major changes:

* compio-buf: support for smallvec
* compio-io: fix behavior of copy
* compio-driver:
* Wait packet for Windows: wait for Win32 event object without spawning a thread pool.
* POSIX AIO support on FreeBSD, Illumos and Solaris.
* compio-runtime: fix memory leak caused by reference cycle.
* And other bug fixes!

Official website

Our official website is online!

Async IO, Completed.
Happy Lunisolar New Year!🐍