@davidtolnay in your blog post "Await a minute" you showed an example of ServiceFramework. It looks a lot like Twitter Finagle but in Rust and with async Thrift support. Is any of this code opensource?
-
-
Replying to @bancek
Not open source, sorry. :( It's a middleware stack around an async Thrift server that attaches various monitoring and debugging pieces that we want in all production services, so the teams can focus on implementing just a Thrift api trait and they get a production ready service.
1 reply 0 retweets 0 likes -
Replying to @davidtolnay
What about async Thrift? Do you use your own code generator and runtime? There are some libraries on GitHub (https://github.com/flavray/rust-thrift-async … and https://github.com/KeenS/tokio-thrift …) but they look unmaintained? We are using Thrift in Go and Scala but are interested in Rust.
1 reply 0 retweets 0 likes -
Replying to @bancek
Custom code generator and runtime for Rust. A thrift "service" compiles to an async trait (https://github.com/dtolnay/async-trait …) where each service method is an async fn. A server is a handwritten impl of the trait, client is a generated impl that talks over a pluggable protocol+transport.
1 reply 0 retweets 0 likes -
Replying to @davidtolnay @bancek
First code snippet in the article is from the server-side codegen.
1 reply 0 retweets 0 likes -
Replying to @davidtolnay
Thank you. Did you extend Thrift's code generator or did you write your own parser and generator? Twitter's Scrooge has a custom parser for example.
1 reply 0 retweets 0 likes
The Rust code generator consumes a json description of the thrift AST from an existing internal codegen pipeline we use for other languages. Makes it easy to write a generator in any lang for any lang and leverage the best libraries, for ex the quote crate for generating Rust.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.