Skip to content

Heather/rust-openssl

 
 

Repository files navigation

rust-openssl

Build Status

Documentation.

Building

rust-openssl depends on both the OpenSSL runtime libraries and headers.

Linux

On Linux, you can install OpenSSL via your package manager. The headers are sometimes provided in a separate package than the runtime libraries - look for something like openssl-devel or libssl-dev.

# On Ubuntu
sudo apt-get install libssl-dev
# On Arch Linux
sudo pacman -S openssl

OSX

OpenSSL 0.9.8 is preinstalled on OSX. Some features are only available when linking against OpenSSL 1.0.0 or greater; see below on how to point rust-openssl to a separate installation. OSX releases starting at 10.11, "El Capitan", no longer include OpenSSL headers which will prevent the openssl crate from compiling.

Windows

On Windows, consider building with mingw-w64. Build script will try to find mingw in PATH environment variable to provide Cargo with location where openssl libs from mingw-w64 package may be found. If you followed guide Building on Windows from rust repo, then you should have MSYS2 with mingw-w64-openssl installed as part of mingw-w64-x86_64-toolchain (or mingw-w64-i686-toolchain) package.

Alternatively, install OpenSSL from here. Cargo will not be able to find OpenSSL if it's installed to the default location. You can either copy the include/openssl directory, libssl32.dll, and libeay32.dll to locations that Cargo can find or pass the location to Cargo via environment variables:

env OPENSSL_LIB_DIR=C:/OpenSSL-Win64 OPENSSL_INCLUDE_DIR=C:/OpenSSL-Win64/include cargo build

Manual configuration

rust-openssl's build script will by default attempt to locate OpenSSL via pkg-config. This will not work in some situations, for example, on systems that don't have pkg-config, when cross compiling, or when using a copy of OpenSSL other than the normal system install.

The build script can be configured via environment variables:

  • OPENSSL_LIB_DIR - If specified, a directory that will be used to find OpenSSL runtime libraries.
  • OPENSSL_INCLUDE_DIR - If specified, a directory that will be used to find OpenSSL headers.
  • OPENSSL_STATIC - If specified, OpenSSL libraries will be statically rather than dynamically linked.

If either OPENSSL_LIB_DIR or OPENSSL_INCLUDE_DIR are specified, then the build script will skip the pkg-config step.

About

OpenSSL bindings for Rust

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 98.0%
  • C 1.4%
  • Shell 0.6%