Git Product home page Git Product logo

Comments (5)

Pagghiu avatar Pagghiu commented on June 8, 2024

Yes it's planned. I'm just trying to understand if I can do it avoiding to use liburing as I would like to keep the library free of dependencies.

from sanecpplibraries.

ido avatar ido commented on June 8, 2024

The kernel interface seems fairly straightforward if you’ve worked on completion queue related settings like Infiniband (libibverbs) and other userspace networking settings. (NB: In Windows, IOCP is the closest equivalent, and in BSD, it’s kqueue.)

However, assuming you already link against a libc, I don’t see why you couldn’t optionally link against liburing and even libfabric (statically or otherwise), if the user wishes to use those backends. For most users, epoll is probably good enough, but the two approaches (completion queues vs epoll) are leaky enough abstractions that they affect how one writes their event loops in not so subtle ways.

from sanecpplibraries.

Pagghiu avatar Pagghiu commented on June 8, 2024

I know about IOCP or kqueue (that's how Async library is implemented on Windows / macOS).

I have no idea however about what libfabric is.

Regarding not wanting to link liburing discussion I think it's a matter of definition.
In this project a dependency is anything that is not included with a standard C++ compiler / SDK / sysroot installation.
A dependency is a library that must be pre-installed by a developer or compiled from its sources.
This project links libc (and pthread) but libc comes with the compiler, so it's not considered dependency (it's always available).
liburing instead must be installed through a package manager or compiled from source, and so by this definition it's a dependency.

I should admit however, that this is a very clear definition on macOS or Windows, that come with properly defined SDKs.
On Linux doing the same is immediately more difficult once we need anything out of the libc because outside of the libc/ pthread and a few more libs you need to use some package manager to install "dev" packages (even just X11 or OpenGL / Vulkan for example) or clone and compile things with your own "build system" that I would like to avoid imposing to users.

from sanecpplibraries.

Pagghiu avatar Pagghiu commented on June 8, 2024

Hi @ido ,
I have been starting the io_uring backend.
There is a first video I've been publishing on bootstrapping it

https://www.youtube.com/watch?v=YR935rorb3E

I will publish an additional one during this week getting the backend to fully pass the small test suite.
I will probably cleanup the code a little bit and push it to main branch the same day when next video will be pushed out.

from sanecpplibraries.

Pagghiu avatar Pagghiu commented on June 8, 2024

Second video https://www.youtube.com/watch?v=CgYE0YrpHt0!

And the io_uring backend has been pushed at dc01aad 😄

from sanecpplibraries.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.