rust2 is not a very informative name (renamed to rust-server via https://github.com/swagger-api/swagger-codegen/pull/6747)hyper 0.10 - work underway to upgrade to hyper 0.11 (which adds full async support)rust generator (rust-server generates both server and client code)rust-server's XML support back in (in a way that doesn't break everything else!). I believe other generators already do this, so it should not be over-hard.rust-server sample was generated from the pre-reversion petstore yaml. It should be re-generated from the current petstore yaml.Latest master
https://github.com/swagger-api/swagger-codegen/pull/6613
If anyone wants to work on these tasks, please reply to let us know.
cc @quodlibetor @ahmedcharles @farcaller @BenjaminGill-Metaswitch @bruceadams @jaytiar
Thanks.
Also, https://github.com/swagger-api/swagger-codegen/pull/6758 helpfully reverted changes to petstore yaml to add XML testing.
I think this yields two pieces of additional work:
rust-server's XML support back in (in a way that doesn't break everything else!). I believe other generators already do this, so it should not be over-hard.rust-server sample was generated from the pre-reversion petstore yaml. It should be re-generated from the current petstore yaml.(BTW: I've now deprecated my secondary GitHub login, @BenjaminGill-Metaswitch, in favour of this, the original)
I have the hyper 0.11 upgrade/port pretty much working, and hope to get it out in the next week or so.
There's another thing we probably want to sort out soon-ish:
Common, non auto-generated code lives in a dedicated crate - https://crates.io/crates/swagger. Currently, this is mastered at https://github.com/Metaswitch/swagger-rs, and @mirw and I are the owners.
I think there are two things we want to do:
I have just submitted #6985 to better match rust int types to schema constraints on rust-server codegen.
I flagged the commitee members as per PR rules but I thought I should also drop a notification here. Let me know what you think.
@wing328 @bjgill I am willing to help if you prioritize between this issue and this one. It'd be great if you tell me which task has importance from your point of view.
It rather depends on which of the two generators you're interested in. This issue covers enhancements to rust-server, a generator that produces a crate containing both client and server. #6250 covers enhancements to rust, a generator that produces a crate containing only a client.
From this issue, I believe that the status of the desired enhancements are as follows:
rust-server, and fancy producing a user guide, that would be very helpful.rust and rust-server: not started, but would help significantly with maintainability, covered by #7347Thank you for opinions. Here are my comments:
- Move to hyper 0.11: I believe @mirw has got this near-complete.
I've tried to find his remaining work, but unfortunately couldn't see it anywhere. I can start this from scratch or continue from where @mirw left, if he is not willing to go on and share latest status.
- Documentation: is still lacking. If you've started using rust-server, and fancy producing a user guide, that would be very helpful.
I've started with just generating rust client. Is there an example documentation from other languages as an example for a starting point? Are we talking about this samples page or generated README file or is there any other documentation page exists?
- Consolidate rust and rust-server: not started, but would help significantly with maintainability, covered by #7347
Please have a look my comment on related issue
I've been testing the hyper 0.11 stuff but not got it pushed publicly yet - hope to do so in the next day or two - sorry for the delay!
@aykutakin - on documentation, I'm not sure there is an equivalent in any of the other languages. What I was imagining was a quick-start guide for generating a rust/rust-server. Effectively similar to https://github.com/swagger-api/swagger-codegen#getting-started, but explicitly discussing the options that one might want to use. I'm not sure where such a guide would live, though.
@aykutakin, sorry for the delay! I've just pushed the async code to https://github.com/Metaswitch/swagger-codegen (rust branch). I'm going to raise an MR shortly, but in case you're keen to see it sooner.
No plans myself, although it might be interesting to see it done.
As you probably know, the current implementation is built directly on hyper. Some of it (e.g. model generation) would probably be portable over to other frameworks.
What benefits are you looking for from moving to actix-web or Rocket? Is it using their middlewares, threading models, etc., integrating with other actix-web/Rocket endpoints, or something else?
@mirw I am hoping use actix-web for an upcoming project, I am interesting in using their middlewares and etc.
Anyway I will first give this generator a try.
Looking at #7600, hyper11 support was merged in #7896, so the second item should be checked off.
Most helpful comment
I have the hyper 0.11 upgrade/port pretty much working, and hope to get it out in the next week or so.