Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 2.38 KB

File metadata and controls

63 lines (45 loc) · 2.38 KB

LibreSSL

This is LibreSSL Portable, packaged for Zig.

Status

This project currently builds the three main LibreSSL libraries as static libraries:

  • libcrypto: core cryptographic routines
  • libssl: OpenSSL 1.1 compatibility layer
  • libtls: LibreSSL's new cryptography API

Operating systems and hardware architectures are supported on a best-effort basis, and patches to add additional OS/arch support are welcome. Building for Linux (x86_64), macOS (aarch64), and Windows (x86_64 via mingw64) is directly tested by CI.

The command-line programs nc, ocspcheck, and openssl are not built by default, and building them when targeting Windows is not supported. Building the command-line programs may be enabled by specifing the -Dbuild-apps option to zig build

Usage

First, update your build.zig.zon:

# Initialize a `zig build` project if you haven't already
zig init
# replace <refname> with the version you want to use, e.g. 4.0.0+4
zig fetch --save git+https://github.com/allyourcodebase/libressl#<refname>

You can then use libressl in your build.zig as follows:

const libressl_dependency = b.dependency("libressl", .{
    .target = target,
    .optimize = optimize,
    .@"enable-asm" = true, // enable assembly routines on supported platforms
});
your_exe.linkLibrary(libressl_dependency.artifact("tls")); // or "ssl", or "crypto"

Options

  -Denable-asm=[bool]          Enable compiling assembly routines, if available (default: true)
  -Dopenssldir=[string]        Set the default libressl configuration/certificate directory
  -Dbuild-apps=[bool]          Build the CLI programs nc, ocspcheck, and openssl (default: false)

Zig Version Support Matrix

Refname LibreSSL Version Zig 0.17-dev Zig 0.16.x Zig 0.15.x Zig 0.14.x Zig 0.13.x Zig 0.12.x
4.0.0+6 4.0.0
4.0.0+1 4.0.0

Platform support

OS:

  • ✅ Linux
  • ✅ MacOS
  • ✅ Windows

Architecture:

  • ✅ amd64/x86_64
  • ✅ arm64/aarch64