qitab / cl-protobufs

Common Lisp protocol buffer implementation.
MIT License
78 stars 17 forks source link

gRPC server anyone? #346

Closed Symbolics closed 2 years ago

Symbolics commented 3 years ago

I have been looking at gRPC for IPC and it looks to fit the bill nicely. Except perhaps that there is no server for Common Lisp. I'm hoping that I just missed something here, or some library elsewhere.

It sort of looks like HTTP/2 is a stumbling block. I've started to revive cl-http2-protocol, but may be getting in over my head with these network protocols I've never worked with before.

Before I go too far down this path, I thought I'd ask if there a CL gRPC server anywhere? Bonus points for a macro/function that I can point at a package and have the functions within exposed automatically.

Slids commented 3 years ago

Internally we are working on a gRPC client (and later server). This is not a native implementation, but gRPC was designed to not have native implementations. That is, there is a "core" gRPC c++ framework that all other languages are suppose to use.

Symbolics commented 3 years ago

That's an interesting idea. Native lisp would of course be better, but wrapping a C or C++ lib is also another way. When you say gRPC wasn't designed to have native implementation, do you mean internally or everywhere? I haven't looked at the source of them, but there are other servers out there and I assumed they were written in their native language.

Any plans to release the client or server?

Slids commented 3 years ago

See: https://github.com/grpc/grpc#about-this-repository c++, ruby, python, php, c#, objective-c all use the "c-core", as does the haskell implementation.

My plan is to clean up and add to the gRPC client and release it. Depending on internal interest, the server is (planned) to be an intern project next year (or have other people work on it if there's interest). Timeline for releasing some client code is probably 1-2 months.

Symbolics commented 3 years ago

All good then, thanks.