-
Notifications
You must be signed in to change notification settings - Fork 35
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
Support for etcd3 #16
Comments
Of course I'd like to support v3, though I hadn't spent any time thinking about it yet. I'm not sure what the state of gRPC in Rust is right now. Last I looked it was in early development, but it's been a while. |
I've not done too much investigation yet either, and I'm not sure whether I'll need this, but I'll get back in touch if I think that extending your work is the best bet. Thanks for the swift response! |
Adding etcd v3 support would be very nice. Using gRPC with Rust is not too bad. There are a couple of quirks, protobuf manipulation in Rust is not as nice as in Go, but overall its doable. |
I would be happy to help implement this. |
PRs most welcome! Which approach to gRPC in Rust do you all think is best these days? |
would it be better to create a new version that only supports v3, or implement it in a way that supports both v2 and v3? Looking at clients in other languages, it looks like most only support one version of the API for a single version of the library. But that is just from a cursory search. |
I'd prefer to leave the existing support for v2. This could be done by nesting API-version-specific items in top level modules called |
I don't know, the grpcio crate seems to be more popular on crates.io, and more active on github, but depends on the grpc-core c library (which could be good since that is standard implemenation, or bad because it requires building a c library and a fair amount of unsafe code). The grpc crate on the other hand is implemented in pure rust using tokio and futures. Another possiblity is using the protobuf crate for serializing/deserializing messages, but then use hyper/h2 directly for the transport. I don't know what the best approach for this is. @VoyTechnology what are your thoughts? Since it sounds like you might have some experience with grpc in rust. |
Hey all, I've used the I would be happy to help will getting things rolling on this front.
I am definitely interested in being able to use the transaction system & leases. |
I created a branch that has the protobuf files in a proto directory (and a script to pull down new versions if/when necessary) at https://github.com/tmccombs/rust-etcd/tree/etcdv3 |
Awesome. Happy to take a look. Are you planning on opening a PR for it against this repo?? |
I am new to etcd. Can't we just call etcd-3 via HTTP requests? |
etcd-3 uses GRPC, which does use HTTP, but it uses HTTP/2 instead of HTTP/1.1 and protobufs instead of json. |
In case if it's going to help, I found some code: |
In additions to gRPC, etcd v3 also provides a JSON gRPC gateway. |
Do you have plans to support etcd v3, and in particular transactions?
The text was updated successfully, but these errors were encountered: