<p align="right">
<a href="https://autorelease.general.dmz.palantir.tech/palantir/conjure-rust"><img src="https://img.shields.io/badge/Perform%20an-Autorelease-success.svg" alt="Autorelease"></a>
</p>
# Conjure-Rust
[](https://circleci.com/gh/palantir/conjure-rust) [](https://bintray.com/palantir/releases/conjure-rust/_latestVersion) [](https://opensource.org/licenses/Apache-2.0)
_[Conjure](https://github.com/palantir/conjure) support for Rust._
## conjure-rust
`conjure-rust` is an [RFC 002](
https://github.com/palantir/conjure/blob/master/docs/rfc/002-contract-for-conjure-generators.md)-compliant CLI, which can
be used via a build tool like [gradle-conjure](https://github.com/palantir/gradle-conjure), or manually:
```
Generate Rust code from a conjure IR file
Usage: conjure-rust generate [OPTIONS] <INPUT_JSON> <OUTPUT_DIRECTORY>
Arguments:
<INPUT_JSON> Path to a JSON-formatted Conjure IR file
<OUTPUT_DIRECTORY> Directory to place generated code
Options:
--exhaustive[=<EXHAUSTIVE>]
Generate exhaustively matchable enums and unions [default: false] [possible values: true, false]
--serializeEmptyCollections[=<SERIALIZE_EMPTY_COLLECTIONS>]
Include empty collection fields in serialized output [default: false] [possible values: true, false]
--stripPrefix <prefix>
Strip a prefix from types's package paths
--productName <name>
The name of the product
--productVersion <version>
The version of the product
--crateVersion <version>
The version of the generated crate. Defaults to `--productVersion`
--extraManifestJson <json>
Extra manifest configuration as a JSON object.
This JSON will be converted to TOML and merged into the generated Cargo.toml manifest.
Example:
--extraManifestJson '{
"package": { "publish": ["some-registry-name"], "license": "MIT" },
"dependencies": { "serde": { "version": "1.0", "features": ["default"] } },
"features": { "fancy-feature": ["foo", "bar"] }
}'
Use single quotes to avoid shell escaping issues.
-h, --help
Print help
```
## conjure-codegen
[Documentation](https://docs.rs/conjure-codegen)
`conjure-codegen` is the library which turns a Conjure IR file into Rust code. It powers the `conjure-rust` CLI, but
can also be used on its own in e.g. build scripts as an alternative approach. See its documentation for more details, as
well as examples of generated code.
## conjure-error
[Documentation](https://docs.rs/conjure-error)
`conjure-error` is the runtime support library that the errors generated by `conjure-codegen` depend on. It defines
various standard error types and functionality to serialize and deserialize errors.
## conjure-http
[Documentation](https://docs.rs/conjure-http)
`conjure-http` is the runtime support library that the service clients and resources generated by `conjure-codegen`
depend on. It defines interfaces used by the underlying client and server implementations.
## conjure-object
[Documentation](https://docs.rs/conjure-object)
`conjure-object` is the runtime support library that the objects generated by `conjure-codegen` depend on. It reexports
the various third party types that correspond to Conjure primitives.
## conjure-serde
[Documentation](https://docs.rs/conjure-serde)
`conjure-serde` provides wrapper types for serde `Serializer`s and `Deserializer`s which adjust behavior to match
Conjure's expectations around binary data, non-finite floating point values, and unknown fields.