Rust bindings for the Launchpad API
Example:
use Resource;
use ServiceRoot;
Bindings are generated from the wadl published by Launchpad.
Feature Flags
The library supports feature flags for Launchpad's different "pillars" to reduce build times:
bugs- Bug tracking functionality (Bug, CVE, etc.)answers- Q&A/FAQ functionality (Question, FAQ, etc.)blueprints- Specification/blueprint functionalitycode- Code hosting functionality (Git, Branches, Merge Proposals, etc.)translations- Translation/localization functionality (POFiles, POTemplates, etc.)packages- Package management functionality (Archives, Builds, Snaps, etc.)
By default, all pillar features are enabled. To reduce build times, you can disable features you don't need:
[]
= { = "0.5", = false, = ["blocking", "api-v1_0", "bugs"] }
This can reduce build times significantly.
Note: Resources that span multiple pillars (e.g., linking bugs to branches) require all relevant pillar features to be enabled.
Limitations and bugs
-
While bindings are generated from the entire WADL file, I have only used a small number of them. Please report bugs if you run into issues.
-
Launchpad's WADL is incorrect in places, e.g. claiming that certain fields are optional while they will actually be set to null. Any problems with the WADL will impact the usability of the rust bindings.
See fixup.xsl for manual patches that are applied; this file is almost certainly incomplete.