-
Notifications
You must be signed in to change notification settings - Fork 74
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
Conduit.3.0.0 #310
Comments
I'm an absolute fan of Uri.t 👍 |
After many experimentation on both side (client and server), I think it is the time to start to integrate |
Sounds good. I'm happy to make the first iteration Lwt only, followed by a separate Async one later. |
See #311 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi all,
I think it's time to start to discuss about a possible migration of
conduit
to the code-base oftuyau
. More generally, one year ago we decided to find a proper way to replaceconduit
by something more powerful.conduit
can be hard to understand and it's why I wrote an article to explain more precisely what I had in my mind: Tuyau, the next conduit.Some tasks come to my mind:
Service
I think we solved all of that into a (not so) new interface. The key of this deep update is the use of extensible variant and GADTs.
So I think it's time to talk more technically about a possible migration, details about implementation, some missing points about comprehension (which is possible even if I wrote an article about that) and finally a plan over all MirageOS projects to migrate to the new interface.
I really would like to aggregate opinions of all people where
conduit
is everywhere and I would not like to spoil anybody about a possible migration.The best of what you should do is to read my article (which wants to give you a global view of the project) and examples available on my repository to really understand what is going on. For an other feedback, my current blog and https://paste.x25519.net/ uses both
tuyau
instead to useconduit
as a way to initialize a server (I still continue to useconduit
forirmin
however as a client). I did not get crashes at this layer from what I know.I'm really disposal to talk about some points:
[ host ] Domain_name.t
insteadUri.t
input
andoutput
Lwt
orAsync
(orUnix
as my example)Map.t
(no side-effect) instead anHashtbl.t
as the global resolverFLOW
(eg.val read : flow -> input -> ([ Eof | Input of int ], error) result
)SERVICE
(eg.listen
&accept
)about that, you mostly be interested by
tuyau_mirage_tcp
which re-implementaccept
tobe close to
Unix.accept
FLOW
with TLS (eg.tls/tuyau_tls.ml
is the main implementation for any)Map.t
to be able to resolve instead that a filling my application of functor (asconduit
does withfunctoria
)So don't hesitate to participate, go deeply into my code, improve the documentation and share your opinion about that 👍 ! I will let this issue open for 2 weeks, then, depending on what we said, I will do what we will agree. Thanks!
The text was updated successfully, but these errors were encountered: