mirage / irmin-server

A high-performance server for Irmin
ISC License
24 stars 7 forks source link

irmin-client without lwt #25

Open bikallem opened 2 years ago

bikallem commented 2 years ago

Will there be a version of irmin-client without the lwt?

zshipko commented 2 years ago

Sorry for the slow response! I am not opposed to the idea, but since irmin itself depends on Lwt I'm not sure how that would work.

bikallem commented 2 years ago

Thanks for the reply. Isn't the irmin-server an out-of-process server, i.e. it is run in a separate process from the client executable? If so, what I was thinking was that lwt free version of irmin client would implement the wire protocol without lwt so that any program consuming it would not depend on lwt. This would be a client-server model of communication. Irmin-server being the server and the client being the irmin-client. Would this be a feasible use case for this library?

zshipko commented 2 years ago

Right now the client uses types directly from irmin. For example, command definitions are shared between the client and server: https://github.com/mirage/irmin-server/blob/master/src/irmin-server-types/command_intf.ml#L74 - it might be possible to split the client and server apart, but I think it would at least require changing the way commands are specified.