Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syncing the async and sync API #127

Open
4 tasks
LDeakin opened this issue Jan 11, 2025 · 0 comments
Open
4 tasks

Syncing the async and sync API #127

LDeakin opened this issue Jan 11, 2025 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@LDeakin
Copy link
Owner

LDeakin commented Jan 11, 2025

The async API is still marked experimental and is lagging behind the sync API in a few areas.

API

  • Add array_sharded_ext::{AsyncArrayShardedExt,AsyncArrayShardedReadableExt} etc
  • Async support for StorageValueIO to enable ZipStorageAdapter with async stores or use an async zip crate
  • Async support for partial encoding
  • ... probably more

Performance

io_uring

It would be nice to have an io_uring backed filesystem store before digging into async performance profiling.

Async Tasks

The async API is less performant than the sync API, and I've not invested much time optimising it. One reason is that there is no internal task spawning. I've not added this mainly because it is a bit of a hassle while still keeping the crate async runtime agnostic. Also, I was hoping that async Rust would be further along in 2024 (async closures, keyword generics, async iterators, async traits with dynamic dispatch, structured concurrency, etc.). 2025 is looking better for async Rust.

Async Partial Decoders

If async tasks get sorted, a good follow-up would be to optimise the async partial decoders (particularly sharding).

@LDeakin LDeakin added enhancement New feature or request help wanted Extra attention is needed labels Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant