# rust-openssl

[![crates.io](https://img.shields.io/crates/v/openssl.svg)](https://crates.io/crates/openssl)

OpenSSL bindings for the Rust programming language.

[Documentation](https://docs.rs/openssl).

## Release Support

The current supported release of `openssl` is 0.10 and `openssl-sys` is 0.9.

New major versions will be published at most once per year. After a new
release, the previous major version will be partially supported with bug
fixes for 3 months, after which support will be dropped entirely.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed under the terms of both the Apache License,
Version 2.0 and the MIT license without any additional terms or conditions.
