Skip to content

egemengol/concuring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concuring

Crates.io Documentation License

Concuring is a synchronous and concurrent HTTP client library written in Rust.

It is work in progress and not appropriate for use.

Design Choices & Goals

I want to make HTTP requests from my Rust applications, there are two main choices I have:

  • use the fantastic ureq library: you need to block for each request, not concurrent
  • bring in an async runtime like tokio and refactor very important parts of the application to work with that runtime. Very viral.

I instead, want to keep using sync Rust, but want to make concurrent requests.

This library tries to achieve this using the io-uring io interface that Linux provides. It is used to do asynchronous (potentially concurrent) IO with a single blocking thread efficiently by offloading the IO to the kernel.

Staying in a single sync blocking thread but still being able to do concurrent HTTP requests, keeps everything tight, very simple to work with or understand, very performant, and small sized (avoiding biig runtime costs for binary size or extra work)

Roadmap

  • HTTP GET
  • chunked responses
  • connection pooling
  • TLS

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages