Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/cd_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ jobs:
release-plz-release:
name: Release-plz release
runs-on: ubuntu-latest
# Buggy currently
if: false
if: ${{ github.repository_owner == 'compio-rs' }}
permissions:
contents: write
steps:
Expand Down
26 changes: 13 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ license = "MIT"
repository = "https://github.com/compio-rs/compio"

[workspace.dependencies]
compio-buf = { path = "./compio-buf", version = "0.8.0" }
compio-driver = { path = "./compio-driver", version = "0.11.1", default-features = false }
compio-runtime = { path = "./compio-runtime", version = "0.11.0" }
compio-executor = { path = "./compio-executor", version = "0.1.0" }
compio-buf = { path = "./compio-buf", version = "0.8.2-rc.1" }
compio-driver = { path = "./compio-driver", version = "0.12.0-rc.1", default-features = false }
compio-runtime = { path = "./compio-runtime", version = "0.12.0-rc.1" }
compio-executor = { path = "./compio-executor", version = "0.1.0-rc.1" }
compio-macros = { path = "./compio-macros", version = "0.1.2" }
compio-fs = { path = "./compio-fs", version = "0.11.0" }
compio-io = { path = "./compio-io", version = "0.9.0" }
compio-net = { path = "./compio-net", version = "0.11.0" }
compio-signal = { path = "./compio-signal", version = "0.9.0" }
compio-dispatcher = { path = "./compio-dispatcher", version = "0.10.0" }
compio-fs = { path = "./compio-fs", version = "0.12.0-rc.1" }
compio-io = { path = "./compio-io", version = "0.10.0-rc.1" }
compio-net = { path = "./compio-net", version = "0.12.0-rc.1" }
compio-signal = { path = "./compio-signal", version = "0.10.0-rc.1" }
compio-dispatcher = { path = "./compio-dispatcher", version = "0.11.0-rc.1" }
compio-log = { path = "./compio-log", version = "0.1.0" }
compio-tls = { path = "./compio-tls", version = "0.9.0", default-features = false }
compio-process = { path = "./compio-process", version = "0.8.0" }
compio-quic = { path = "./compio-quic", version = "0.7.0", default-features = false }
compio-ws = { path = "./compio-ws", version = "0.3.0", default-features = false }
compio-tls = { path = "./compio-tls", version = "0.10.0-rc.1", default-features = false }
compio-process = { path = "./compio-process", version = "0.9.0-rc.1" }
compio-quic = { path = "./compio-quic", version = "0.8.0-rc.1", default-features = false }
compio-ws = { path = "./compio-ws", version = "0.4.0-rc.1", default-features = false }

bytes = "1.7.1"
bytemuck = "1.25.0"
Expand Down
18 changes: 18 additions & 0 deletions compio-buf/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## 0.8.2-rc.1 - 2026-04-20

### Added

- *(runtime)* [**breaking**] waker-based future combinator ([#825](https://github.com/compio-rs/compio/pull/825))
- organize features ([#822](https://github.com/compio-rs/compio/pull/822))
- *(buf)* add into_parts for BufResult ([#712](https://github.com/compio-rs/compio/pull/712))
- *(buf)* add support for memmap2 ([#684](https://github.com/compio-rs/compio/pull/684))

### Fixed

- unused_features ([#739](https://github.com/compio-rs/compio/pull/739))

### Other

- remove cross-rs ([#841](https://github.com/compio-rs/compio/pull/841))
- remove "authors" field in metadata ([#711](https://github.com/compio-rs/compio/pull/711))

## [0.8.0](https://github.com/compio-rs/compio/compare/v0.17.0...v0.18.0) - 2026-01-28

### Added
Expand Down
2 changes: 1 addition & 1 deletion compio-buf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-buf"
version = "0.8.0"
version = "0.8.2-rc.1"
description = "Buffer trait for completion based async IO"
categories = ["asynchronous"]
keywords = ["async"]
Expand Down
13 changes: 5 additions & 8 deletions compio-buf/src/io_buf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -826,14 +826,11 @@ impl SetLen for std::io::BorrowedBuf<'static> {
unsafe fn set_len(&mut self, len: usize) {
debug_assert!(self.capacity() >= len);

let old_len = self.len();
if len > old_len {
// SAFETY: `len` range is initialized guaranteed by invariant of `set_len`
#[allow(unused_unsafe)]
unsafe {
self.clear().unfilled().advance(len - old_len)
};
}
// SAFETY: `len` range is initialized guaranteed by invariant of `set_len`
#[allow(unused_unsafe)]
unsafe {
self.clear().unfilled().advance(len)
};
}
}

Expand Down
15 changes: 15 additions & 0 deletions compio-dispatcher/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## 0.11.0-rc.1 - 2026-04-20

### Added

- *(signal,dispatcher)* [**breaking**] remove signalfd ([#794](https://github.com/compio-rs/compio/pull/794))
- *(dispatcher)* block standard POSIX signals on worker threads ([#672](https://github.com/compio-rs/compio/pull/672))

### Fixed

- unused_features ([#739](https://github.com/compio-rs/compio/pull/739))

### Other

- remove "authors" field in metadata ([#711](https://github.com/compio-rs/compio/pull/711))

## [0.10.0](https://github.com/compio-rs/compio/compare/v0.17.0...v0.18.0) - 2026-01-28

### Added
Expand Down
2 changes: 1 addition & 1 deletion compio-dispatcher/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-dispatcher"
version = "0.10.0"
version = "0.11.0-rc.1"
description = "Multithreading dispatcher for compio"
categories = ["asynchronous"]
keywords = ["async", "runtime"]
Expand Down
74 changes: 74 additions & 0 deletions compio-driver/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,80 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## 0.12.0-rc.1 - 2026-04-20

### Added

- *(driver)* add more flags to Extra ([#858](https://github.com/compio-rs/compio/pull/858))
- *(driver)* add Extra::needs_polling ([#857](https://github.com/compio-rs/compio/pull/857))
- *(driver)* recvmsg multi ([#842](https://github.com/compio-rs/compio/pull/842))
- *(driver)* buffer pool allocator ([#854](https://github.com/compio-rs/compio/pull/854))
- *(driver,iour)* allow to specify cqsize ([#834](https://github.com/compio-rs/compio/pull/834))
- *(runtime)* [**breaking**] waker-based future combinator ([#825](https://github.com/compio-rs/compio/pull/825))
- *(driver)* yield_now in push_blocking loop ([#816](https://github.com/compio-rs/compio/pull/816))
- *(driver,fs,unix)* async anonymous pipe ([#807](https://github.com/compio-rs/compio/pull/807))
- *(driver,net,unix)* async bind & listen ([#806](https://github.com/compio-rs/compio/pull/806))
- *(io)* add traits for reading/writing with ancillary data ([#717](https://github.com/compio-rs/compio/pull/717))
- implement IntoInner for PollOnce and Splice ([#792](https://github.com/compio-rs/compio/pull/792))
- *(net,win)* make `socket` & `shutdown` sync ([#789](https://github.com/compio-rs/compio/pull/789))
- *(driver)* [**breaking**] accept multi ([#747](https://github.com/compio-rs/compio/pull/747))
- *(driver)* fallback for zerocopy ops ([#755](https://github.com/compio-rs/compio/pull/755))
- *(driver)* send zerocopy for Linux ([#754](https://github.com/compio-rs/compio/pull/754))
- update thin-cell ([#738](https://github.com/compio-rs/compio/pull/738))
- *(driver)* multishot op ([#715](https://github.com/compio-rs/compio/pull/715))
- *(driver)* make stub & iocp driver non-send and test ([#728](https://github.com/compio-rs/compio/pull/728))
- *(driver)* add register_files/unregister_files for io_uring fixed-file ops ([#718](https://github.com/compio-rs/compio/pull/718))
- *(driver)* entry fallback ([#716](https://github.com/compio-rs/compio/pull/716))
- *(driver)* add recv_from_managed operation support ([#709](https://github.com/compio-rs/compio/pull/709))
- *(fs)* dirfd support ([#703](https://github.com/compio-rs/compio/pull/703))
- *(driver,unix)* [**breaking**] support dirfd relative fs ops ([#699](https://github.com/compio-rs/compio/pull/699))
- *(driver,iocp)* impl AsFd for borrowed handle ([#694](https://github.com/compio-rs/compio/pull/694))
- *(driver)* force OpCode support ([#690](https://github.com/compio-rs/compio/pull/690))
- *(dispatcher)* block standard POSIX signals on worker threads ([#672](https://github.com/compio-rs/compio/pull/672))
- *(runtime)* cancel & future combinator ([#665](https://github.com/compio-rs/compio/pull/665))
- *(driver)* cancel token ([#660](https://github.com/compio-rs/compio/pull/660))

### Changed

- [**breaking**] use rustix ([#876](https://github.com/compio-rs/compio/pull/876))
- *(driver)* adjust sys layout ([#870](https://github.com/compio-rs/compio/pull/870))
- *(driver)* use WeakKey for Cancel ([#864](https://github.com/compio-rs/compio/pull/864))
- *(driver)* handle panicking ([#853](https://github.com/compio-rs/compio/pull/853))
- *(driver)* require Default for Control ([#859](https://github.com/compio-rs/compio/pull/859))
- [**breaking**] buffer pool & managed IO ([#820](https://github.com/compio-rs/compio/pull/820))
- *(driver,unix)* use control api ([#804](https://github.com/compio-rs/compio/pull/804))
- *(driver,iocp)* use control api ([#803](https://github.com/compio-rs/compio/pull/803))
- *(driver)* get rid of pin ([#758](https://github.com/compio-rs/compio/pull/758))
- *(net)* adjust `send*` methods ([#770](https://github.com/compio-rs/compio/pull/770))
- *(driver)* record multishot results in ops ([#748](https://github.com/compio-rs/compio/pull/748))
- *(driver)* [**breaking**] make update_waker take &Key ([#742](https://github.com/compio-rs/compio/pull/742))
- *(driver)* shared fd ([#661](https://github.com/compio-rs/compio/pull/661))

### Fixed

- *(driver,iour)* len field for RecvMulti ([#879](https://github.com/compio-rs/compio/pull/879))
- *(driver)* test cancel for windows ([#881](https://github.com/compio-rs/compio/pull/881))
- *(driver,unix)* add some control API usages ([#832](https://github.com/compio-rs/compio/pull/832))
- *(driver)* avoid leak if not consumed ([#809](https://github.com/compio-rs/compio/pull/809))
- *(driver,fs)* add Sync on fds of AsyncifyFd* ([#805](https://github.com/compio-rs/compio/pull/805))
- *(driver)* memory leaks on drop ([#769](https://github.com/compio-rs/compio/pull/769))
- *(driver)* rust-analyzer is confused by Extra ([#740](https://github.com/compio-rs/compio/pull/740))
- unused_features ([#739](https://github.com/compio-rs/compio/pull/739))
- *(driver,iour)* make `Driver` non-`Send` ([#727](https://github.com/compio-rs/compio/pull/727))
- *(driver,net)* [**breaking**] to/from/msg have optional address ([#721](https://github.com/compio-rs/compio/pull/721))
- *(driver,stub)* allow creation ([#705](https://github.com/compio-rs/compio/pull/705))
- *(driver,unix)* `set_result` for `OpenFile` & `CreateSocket` ([#701](https://github.com/compio-rs/compio/pull/701))
- *(driver)* key is not unique when spawn_blocking ([#675](https://github.com/compio-rs/compio/pull/675))
- *(driver)* statx on musl ([#669](https://github.com/compio-rs/compio/pull/669))
- *(driver)* the fusion driver with polling variant ([#670](https://github.com/compio-rs/compio/pull/670))

### Other

- *(driver)* release buffer pool ([#810](https://github.com/compio-rs/compio/pull/810))
- *(driver)* read multi on pipe ([#760](https://github.com/compio-rs/compio/pull/760))
- remove "authors" field in metadata ([#711](https://github.com/compio-rs/compio/pull/711))
- *(driver)* fix doc for Dispatchable ([#693](https://github.com/compio-rs/compio/pull/693))

## [0.11.1](https://github.com/compio-rs/compio/compare/v0.17.0...v0.18.0) - 2026-01-28

### Added
Expand Down
9 changes: 2 additions & 7 deletions compio-driver/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-driver"
version = "0.11.1"
version = "0.12.0-rc.1"
description = "Low-level driver for compio"
categories = ["asynchronous"]
keywords = ["async", "iocp", "io-uring"]
Expand Down Expand Up @@ -74,12 +74,7 @@ cfg_aliases = { workspace = true }

[features]
default = ["io-uring"]
io-uring = [
"rustix/mm",
"rustix/event",
"dep:io-uring",
"dep:once_cell",
]
io-uring = ["rustix/mm", "rustix/event", "dep:io-uring", "dep:once_cell"]
polling = ["dep:polling"]

sync = []
Expand Down
23 changes: 23 additions & 0 deletions compio-executor/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## 0.1.0-rc.1 - 2026-04-20

### Added

- [**breaking**] compio-executor ([#790](https://github.com/compio-rs/compio/pull/790))

### Changed

- *(executor)* [**breaking**] v3 ([#840](https://github.com/compio-rs/compio/pull/840))
- [**breaking**] rename all "canceled" to "cancelled" ([#826](https://github.com/compio-rs/compio/pull/826))

### Fixed

- *(executor)* uaf ([#850](https://github.com/compio-rs/compio/pull/850))
2 changes: 1 addition & 1 deletion compio-executor/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-executor"
version = "0.1.0"
version = "0.1.0-rc.1"
description = "Executor for compio"
categories = ["asynchronous"]
keywords = ["async", "executor"]
Expand Down
34 changes: 34 additions & 0 deletions compio-fs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## 0.12.0-rc.1 - 2026-04-20

### Added

- *(runtime,fs,net)* high-level multishot ([#830](https://github.com/compio-rs/compio/pull/830))
- *(driver,fs,unix)* async anonymous pipe ([#807](https://github.com/compio-rs/compio/pull/807))
- *(io)* copy-bidirectional ([#800](https://github.com/compio-rs/compio/pull/800))
- [**breaking**] compio-executor ([#790](https://github.com/compio-rs/compio/pull/790))
- *(io)* allow create a stream out of AsyncRead for BytesFramed ([#767](https://github.com/compio-rs/compio/pull/767))
- *(tls,fs)* fix tests ([#757](https://github.com/compio-rs/compio/pull/757))
- *(fs)* dirfd support ([#703](https://github.com/compio-rs/compio/pull/703))
- *(driver,unix)* [**breaking**] support dirfd relative fs ops ([#699](https://github.com/compio-rs/compio/pull/699))

### Changed

- [**breaking**] use rustix ([#876](https://github.com/compio-rs/compio/pull/876))
- *(driver)* require Default for Control ([#859](https://github.com/compio-rs/compio/pull/859))
- [**breaking**] rename all "canceled" to "cancelled" ([#826](https://github.com/compio-rs/compio/pull/826))
- [**breaking**] buffer pool & managed IO ([#820](https://github.com/compio-rs/compio/pull/820))
- *(driver)* get rid of pin ([#758](https://github.com/compio-rs/compio/pull/758))
- [**breaking**] move {Async,Poll}Fd to runtime ([#662](https://github.com/compio-rs/compio/pull/662))

### Fixed

- *(driver,fs)* add Sync on fds of AsyncifyFd* ([#805](https://github.com/compio-rs/compio/pull/805))
- unused_features ([#739](https://github.com/compio-rs/compio/pull/739))
- *(driver,unix)* `set_result` for `OpenFile` & `CreateSocket` ([#701](https://github.com/compio-rs/compio/pull/701))

### Other

- *(fs,net)* comments on `close` ([#821](https://github.com/compio-rs/compio/pull/821))
- remove "authors" field in metadata ([#711](https://github.com/compio-rs/compio/pull/711))
- compio::runtime instead of compio_runtime ([#664](https://github.com/compio-rs/compio/pull/664))

## [0.11.0](https://github.com/compio-rs/compio/compare/v0.17.0...v0.18.0) - 2026-01-28

### Added
Expand Down
2 changes: 1 addition & 1 deletion compio-fs/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-fs"
version = "0.11.0"
version = "0.12.0-rc.1"
description = "Filesystem IO for compio"
categories = ["asynchronous", "filesystem"]
keywords = ["async", "fs"]
Expand Down
46 changes: 46 additions & 0 deletions compio-io/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## 0.10.0-rc.1 - 2026-04-20

### Added

- *(io,tls)* [**breaking**] require `Splittable` for `AsyncStream` ([#874](https://github.com/compio-rs/compio/pull/874))
- *(io)* make `SyncStream` splittable ([#862](https://github.com/compio-rs/compio/pull/862))
- *(net)* multi & managed for recvfrom & recvmsg ([#838](https://github.com/compio-rs/compio/pull/838))
- *(io)* add SyncStream::into_parts ([#847](https://github.com/compio-rs/compio/pull/847))
- *(io)* ancillary managed trait ([#843](https://github.com/compio-rs/compio/pull/843))
- *(io)* read-multi traits ([#732](https://github.com/compio-rs/compio/pull/732))
- *(io)* copy-bidirectional ([#800](https://github.com/compio-rs/compio/pull/800))
- *(io)* add traits for reading/writing with ancillary data ([#717](https://github.com/compio-rs/compio/pull/717))
- *(io)* fix ancillary API to avoid UB ([#737](https://github.com/compio-rs/compio/pull/737))
- *(io)* allow create a stream out of AsyncRead for BytesFramed ([#767](https://github.com/compio-rs/compio/pull/767))
- *(io)* make bytes optional ([#750](https://github.com/compio-rs/compio/pull/750))
- *(io)* added bytes and framed helper methods to AsyncReadExt/AsyncWriteExt ([#752](https://github.com/compio-rs/compio/pull/752))
- *(runtime)* `submit_multi` ([#743](https://github.com/compio-rs/compio/pull/743))
- *(io)* add BytesFramed support ([#749](https://github.com/compio-rs/compio/pull/749))
- *(ws)* futures compat ([#713](https://github.com/compio-rs/compio/pull/713))
- *(io)* add duplex forwarding for BufReader/BufWriter ([#695](https://github.com/compio-rs/compio/pull/695))

### Changed

- *(ws)* [**breaking**] futures compat ([#875](https://github.com/compio-rs/compio/pull/875))
- *(io)* optimize waker array ([#878](https://github.com/compio-rs/compio/pull/878))
- *(io)* accept multiple buffer types in AncillaryBuilder ([#795](https://github.com/compio-rs/compio/pull/795))
- [**breaking**] buffer pool & managed IO ([#820](https://github.com/compio-rs/compio/pull/820))
- *(signal)* runtime agnostic ([#797](https://github.com/compio-rs/compio/pull/797))
- *(io,tls,ws)* [**breaking**] use pin-project-lite ([#720](https://github.com/compio-rs/compio/pull/720))
- *(io,quic)* move quic Ancillary to io ([#734](https://github.com/compio-rs/compio/pull/734))
- *(io,net)* move cmsg to io ancillary ([#730](https://github.com/compio-rs/compio/pull/730))

### Fixed

- *(io)* fix bytes feature and warnings ([#779](https://github.com/compio-rs/compio/pull/779))
- *(lint)* fix ambiguity linter error in compio-io ([#777](https://github.com/compio-rs/compio/pull/777))
- *(io)* make also bytes method on AsyncReadExt/AsyncWriteExt feature gated ([#766](https://github.com/compio-rs/compio/pull/766))
- unused_features ([#739](https://github.com/compio-rs/compio/pull/739))
- *(tls,io)* multiple native-tls issues ([#698](https://github.com/compio-rs/compio/pull/698))
- *(io)* flush manually in poll_close ([#681](https://github.com/compio-rs/compio/pull/681))
- *(driver)* the fusion driver with polling variant ([#670](https://github.com/compio-rs/compio/pull/670))

### Other

- remove "authors" field in metadata ([#711](https://github.com/compio-rs/compio/pull/711))

## [0.9.0](https://github.com/compio-rs/compio/compare/v0.17.0...v0.18.0) - 2026-01-28

### Added
Expand Down
4 changes: 1 addition & 3 deletions compio-io/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compio-io"
version = "0.9.0"
version = "0.10.0-rc.1"
description = "IO traits for completion based async IO"
categories = ["asynchronous"]
keywords = ["async", "io"]
Expand Down Expand Up @@ -33,8 +33,6 @@ windows-sys = { workspace = true, optional = true, features = [
] }

[dev-dependencies]
compio-net = { workspace = true }
compio-runtime = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt"] }
serde = { version = "1.0.219", features = ["derive"] }
futures-executor = { workspace = true }
Expand Down
Loading
Loading