Releases: compio-rs/compio
Releases · compio-rs/compio
v0.16.0
What's Changed
- feat(runtime): add "notify-always" feature by @Berrysoft in #435
- feat(iour): allow register eventfd in Driver::new by @Berrysoft in #438
- feat: add tcp configuration options by @numinnex in #440
- doc(fs): update file documentation with info about AsyncRead/AsyncWrite traits by @numinnex in #443
- feat(net): design improvements for TcpOpts by @Berrysoft in #441
- refactor: cleanup features by @Berrysoft in #436
- feat: update socket2, windows-sys, rcgen by @Berrysoft in #448
- fix(net): cmsg buf align by @Berrysoft in #449
- feat(runtime): implement thread affinity for runtime and dispatcher by @numinnex in #445
- feat(net): rename tcp nodelay to idiomatic version by @numinnex in #451
- feat(driver): warn if thread pool limit is set to 0 by @Berrysoft in #450
- fix(driver,poll): musl libc compatibility by @ur4t in #455
- refactor: new traits
IoVectoredBuf*
by @Berrysoft in #457 - fix(driver,iour): resubmit poll op by @Berrysoft in #462
- refactor(driver): remove some cfg(io_uring) by @Berrysoft in #463
- refactor: Avoid instantiating Elapsed outside by @tisonkun in #466
- doc: change document for io::framed
Encoder
by @George-Miao in #467 - fix: framed read can only read out one item by @George-Miao in #468
- fix: TimerFuture being Send and Sync by @George-Miao in #470
- feat(driver): determine current driver type at runtime by @Berrysoft in #471
New Contributors
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
- feat(net): TcpStream.nodelay, TcpStream.set_nodelay by @XeCycle in #384
- fix(buf): track caller unwrapping by @incisakura in #385
- feat(driver): buffer pool by @Berrysoft in #358
- fix(quic): usages of
#[doc(hidden)] pub
by @AsakuraMizu in #389 - feat(quic): update h3 to 0.0.7 by @AsakuraMizu in #391
- fix: reduce warnings by @Berrysoft in #396
- feat: implement AsFd trait for many types by @Sherlock-Holo in #395
- build(deps): update nix requirement from 0.29.0 to 0.30.1 by @dependabot in #399
- refactor(driver,iour): remove support for kernel < 5.19 by @Berrysoft in #402
- perf(driver): set setup_coop_taskrun for io-uring by @Sherlock-Holo in #401
- Add
CLOEXEC
flags by @Berrysoft in #403 - feat(quic): update h3 to 0.0.8, h3-datagram to 0.0.2 by @AsakuraMizu in #407
- build(deps): update webpki-roots requirement from 0.26.3 to 1.0.0 by @dependabot in #406
- feat: add TcpStream bind_and_connect by @Sherlock-Holo in #409
- build: add required dependencies to flake.nix by @George-Miao in #411
- fix(driver,poll): clear events before poll by @Berrysoft in #412
- build(deps): update criterion requirement from 0.5.1 to 0.6.0 by @dependabot in #408
- build: bump patch version for compio-quic by @AsakuraMizu in #414
- fix: move socket2/all feature gate from compio-net to compio-driver by @AsakuraMizu in #415
- Read to string by @Sherlock-Holo in #413
- implement Deref for AsyncFd by @Sherlock-Holo in #416
- feat: Framed IO by @George-Miao in #417
- fix(io): remove unnecessary features by @George-Miao in #419
- feat(io): allow set length_field_len and length_field_is_big_endian for LengthDelimited by @Sherlock-Holo in #420
- build(deps): update rustls-platform-verifier requirement from 0.5.0 to 0.6.0 by @dependabot in #422
- fix(driver): make clippy happy by @Berrysoft in #425
- ci: specify target on Windows by @Berrysoft in #426
- fix: handle some edge cases for windows version below vista by @stevefan1999-personal in #427
- chore: rewrite compio-quic bench by @AsakuraMizu in #428
- ci: remove glib test by @Berrysoft in #430
- fix(driver): add
AsFd
requirements forSharedFd
by @Berrysoft in #424 - fix(io): Framed by @George-Miao in #421
- feat: buffered IO implementation by @Berrysoft in #386
- feat(driver): Add DeviceIoControl opcode by @tpambor in #429
- feat(io): adjust read_managed_at param order by @Berrysoft in #431
- feat: prepare for 0.15 release by @Berrysoft in #432
New Contributors
- @stevefan1999-personal made their first contribution in #427
- @tpambor made their first contribution in #429
Full Changelog: v0.14.0...v0.15.0
v0.14.0
What's Changed
- fix(runtime): drop runnables manually by @Berrysoft in #350
- fix: remove "ring" from default features by @Berrysoft in #351
- fix(runtime): fix runtime drop borrowing by @Berrysoft in #360
- fix(runtime): register timer on first poll by @Berrysoft in #354
- fix(fs,net,signal): check driver type on runtime by @Berrysoft in #363
- fix(driver,iocp): check NTSTATUS correctly by @Berrysoft in #367
- fix(runtime): simplify spawn_blocking by @Berrysoft in #362
- refactor(io): revise vectored methods by @Berrysoft in #355
- refactor(driver): remove one Result usage by @Berrysoft in #369
- fix(dispatcher): replace event with oneshot channel by @Berrysoft in #368
- fix(runtime): remove handwritten state machine by @Berrysoft in #361
- build(deps): update rustls-platform-verifier requirement from 0.4.0 to 0.5.0 by @dependabot in #370
- feat(io): buffer pool IO traits by @Berrysoft in #356
- feat(runtime): relax signature of
spawn_blocking
by @g-plane in #371 - build(deps): update block2 requirement from 0.5.0 to 0.6.0 by @dependabot in #372
- build(deps): update rand requirement from 0.8.5 to 0.9.0 by @dependabot in #373
- ci: remove FreeBSD by @Berrysoft in #374
- feat(net): add from_std for Listener by @Berrysoft in #376
- chore(quic): re-enable quinn on solarish by @AsakuraMizu in #380
- fix(ci): reduce clippy warnings by @Berrysoft in #382
- fix(tls): duplicated buffer init by @incisakura in #381
- fix(net): set reuseaddr when binding by @XeCycle in #379
- fix(io): don't fill buffer until inner buffer is empty by @Berrysoft in #378
- feat: prepare for 0.14 release by @Berrysoft in #383
New Contributors
Full Changelog: v0.13.1...v0.14.0
v0.13.1
What's Changed
- fix(runtime): forget op if no current runtime by @Berrysoft in #338
- Add support for smallvec by @George-Miao in #341
- build: update flake by @George-Miao in #342
- fix(poll): renew event with valid user_data by @Berrysoft in #340
- fix(driver): erase op type in driver by @Berrysoft in #348
- fix(poll): cancel in the fd queue by @Berrysoft in #346
Full Changelog: v0.13.0...v0.13.1
v0.13.0
What's Changed
- ci: guard compio is compatible with stable rust by @tisonkun in #297
- fix(fs): metadata types on armv7-linux-androideabi by @Berrysoft in #298
- feat(tls): add ALPN support by @Berrysoft in #299
- feat(io): add *_read_uninit for compat by @Berrysoft in #301
- feat(runtime): don't try to poll all tasks before polling driver by @Berrysoft in #300
- feat(net): add from_std for UdpSocket by @Berrysoft in #302
- refactor: update rustfmt config by @Berrysoft in #303
- fix(driver,poll,iour): use Arc::clone instead of try_clone by @Berrysoft in #306
- fix(driver,poll): remove pipe usage by @Berrysoft in #307
- fix(quic): don't exit event loop on I/O error by @AsakuraMizu in #311
- fix(net,iour,poll): fix accept leak by @Berrysoft in #315
- build(deps): update rustls platform verifier by @Berrysoft in #317
- feat(io): remove explicit lifetime from copy by @George-Miao in #319
- fix(driver,poll): ignore EINTR and retry by @Berrysoft in #320
- feat(driver,iocp): add WaitCompletionPacket support by @Berrysoft in #316
- refactor(net,iocp): move WSAStartup by @Berrysoft in #314
- fix(io): copy should be eager by @Berrysoft in #321
- refactor(driver,poll): remove event in on_event by @Berrysoft in #322
- ci: add freebsd by @Berrysoft in #324
- fix(io,copy): clear buf after write by @Berrysoft in #325
- refactor(driver,poll): add op_type by @Berrysoft in #323
- feat: add FreeBSD AIO support by @Berrysoft in #310
- fix(runtime): runnable reference cycle by @Berrysoft in #328
- ci: add illumos one by @Berrysoft in #327
- refactor: use cfg_aliases by @Berrysoft in #331
- fix(runtime): self-reference without Arc by @Berrysoft in #329
- refactor(driver,runtime): allow polling driver when pushing an op by @Berrysoft in #308
- doc(README): add banner by @George-Miao in #334
- feat(quic): support rustls provider aws-lc-rs by @AsakuraMizu in #333
- feat(driver): add AIO support for illumos & solaris by @Berrysoft in #330
- fix: add rustls features for tls by @Berrysoft in #336
- fix: add io-uring & polling feature to crates by @Berrysoft in #335
New Contributors
Full Changelog: v0.12.0...v0.13.0
v0.12.0
What's Changed
- doc: Update README.md by @George-Miao in #270
- refactor(driver): better IORING_CQE_F_MORE handle by @Sherlock-Holo in #273
- feat: add flags related methods by @Sherlock-Holo in #272
- feat: add ancillary data support by @AsakuraMizu in #275
- test(fs): Add a test case for read with timeout by @Xuanwo in #280
- refactor:
IoVectoredBuf
by @George-Miao in #277 - fix(driver/net): ancillary data by @AsakuraMizu in #283
- fix(buf): remove unreachable pattern by @AsakuraMizu in #287
- doc: fix clippy "first doc comment paragraph is too long" by @AsakuraMizu in #289
- Add from_std methods by @fafhrd91 in #290
- feat: QUIC by @AsakuraMizu in #282
- Fix/driver-type by @George-Miao in #292
- feat: use signalfd on Linux by @Berrysoft in #271
New Contributors
Full Changelog: v0.11.0...v0.12.0
v0.11.0
What's Changed
- feat(dispatcher): Make concurrency by @George-Miao in #244
- feat(runtime): catch unwind in spawn* by @Berrysoft in #245
- refactor(driver): add SharedFd & OwnedFd and require them in operations by @Berrysoft in #230
- fix(runtime): incorrect min_timeout by @Mivik in #246
- refactor(driver): generic SharedFd by @Berrysoft in #247
- fix: feature typo by @Berrysoft in #249
- feat(fs): AsyncFd by @Berrysoft in #248
- feat(driver): reduce eventfd IO by @Berrysoft in #250
- fix(runtime): handle busy error in spawn_blocking by @Berrysoft in #253
- feat(driver): move future state into RawOp by @Berrysoft in #251
- perf(net): rewrite net bench and optimize by @Berrysoft in #254
- refactor(dispatcher): reduces alloc and API change by @George-Miao in #255
- feat(dispatcher): derive debug for dispatcher by @George-Miao in #256
- feat(driver): add io-uring sqpoll support by @Sherlock-Holo in #257
- perf: move named pipe bench and add unix socket bench by @Berrysoft in #258
- build(deps): update nix requirement from 0.28.0 to 0.29.0 by @dependabot in #259
- feat(dispatcher): dispatch blocking fn's by @George-Miao in #260
- feat(process): compio-process by @Berrysoft in #224
- feat(runtime): faster SendWrapper with cached thread id by @Berrysoft in #261
- fix(driver,poll): ENOENT on Linux by @Berrysoft in #263
- fix(driver,iocp): use Vec instead of ArrayVec by @Berrysoft in #262
- test(net): use random port by @AsakuraMizu in #267
- feat(net): add PollFd to wait for readiness by @Berrysoft in #265
- refactor(macro): remove compio::main restrictions by @ClSlaid in #268
New Contributors
- @Mivik made their first contribution in #246
- @AsakuraMizu made their first contribution in #267
- @ClSlaid made their first contribution in #268
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
- refactor(runtime): return Task in spawn_blocking by @Berrysoft in #221
- fix(buf): make IoBuf(Mut) unsafe by @Berrysoft in #222
- feat(driver,windows): add win32 event support by @Berrysoft in #223
- build: add flake.nix by @George-Miao in #226
- fix(driver,iour): remove outer squeue by @Berrysoft in #227
- refactor(bench): rewrite fs bench by @Berrysoft in #225
- refactor(driver): remove OpenFile & stat ops for Windows by @Berrysoft in #228
- fix(driver,iour): wrong impl of WriteVectoredAt by @Berrysoft in #231
- fix(driver,poll): use blocking file io by @Berrysoft in #232
- fix(unix,iour): musl libc compatibility by @valpackett in #233
- fix(driver): use statx only on linux-gnu by @Berrysoft in #235
- feat(fs): new fs methods by @Berrysoft in #237
- feat(driver): add CreateSocket by @Berrysoft in #236
- build(deps): update block2 requirement from 0.4.0 to 0.5.0 by @dependabot in #242
- feat(io): compat async stream for futures by @Berrysoft in #240
New Contributors
- @valpackett made their first contribution in #233
Full Changelog: v0.9.0...v0.10.0
v0.9.0
compio 0.9.0 is released!
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!
What's Changed
- 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. #115
- Traits are refactored with
- compio-io: NEW
- compio-driver:
- Notify handle to wake up the proactor. #149
io-uring
driver: Now supports 128-bitSQE
and 32-bitCQE
. #193- Fusion driver for Linux: Select the proper driver automatically during runtime. Enabled by toggling on both
io-uring
andpolling
driver. #110 - Global IOCP for Windows: When
iocp-global
enabled, all IO resources can be sent to other threads even the original thread is not running. #200
- compio-runtime:
- compio-fs:
- compio-net:
- compio-signal:
- The signal handler is async-handler safe on Unix. #183
- compio-tls: NEW
- compio-dispatcher: NEW
Main Contributors
@Berrysoft and @George-Miao , congratulations!
New Contributors
- @Sherlock-Holo made their first contribution in #100
- @nazar-pc made their first contribution in #121
- @ho-229 made their first contribution in #128
- @oluceps made their first contribution in #151
- @bokket made their first contribution in #197
- @Xuanwo made their first contribution in #213
Full Changelog: v0.8.0...v0.9.0
v0.9.0-beta.4
What's Changed
- doc: add telegram badge to README.md by @George-Miao in #156
- fix(tls): fix rustls version by @George-Miao in #157
- refactor(runtime): make Attacher a container by @Berrysoft in #154
- fix(tls): update rustls to 0.22.0-alpha.5 by @Berrysoft in #159
- fix(tls): pin version of rustls-pki-types by @Berrysoft in #160
- fix(net): cancel async resolver on drop by @Berrysoft in #162
- fix(tls): report error if no tls backend enabled by @Berrysoft in #166
- refactor(driver,polling): remove
is_blocking
by @Berrysoft in #169 - feat(driver,runtime): add Asyncify op and
spawn_blocking
by @Berrysoft in #163 - ci: add beta channel by @ho-229 in #173
- feat(tls): update rustls to 0.22 by @Berrysoft in #172
- feat(net): use spawn_blocking for unix resolver by @Berrysoft in #171
- fix(net,linux): remove dep on libanl by @Berrysoft in #175
Full Changelog: v0.9.0-beta.3...v0.9.0-beta.4