openziti / tlsuv

TLS and HTTP(s) client library for libuv
https://docs.openziti.io/tlsuv/
MIT License
43 stars 5 forks source link
libuv mbedtls networking tls

TLSUV = TLS + libUV

Overview

TLSUV is a cross-platform library allowing asynchronous TLS communication. This is done by combinining libuv with mbedTLS or OpenSSL (see below for using other TLS implementations)

Features

API

API is attempted to be consistent with libuv API

Supported Platforms

Using in your project

The simplest way to integrate tlsuv in your project is to include it in your CMake build with FetchContent

    FetchContent_Declare(tlsuv
            GIT_REPOSITORY https://github.com/openziti/tlsuv.git
            GIT_TAG v0.29.5 # use latest release version
            )
    FetchContent_MakeAvailable(tlsuv)

    target_link_libraries(your_app PRIVATE tlsuv)

Selectable Features

HTTP support is a selectable feature (ON by default) and can be disabled by adding -DTLSUV_HTTP=OFF during CMake configuration step. This will also reduce dependencies list.

Dependencies

TLSUV depends on the following libraries:

Library Notes
libuv
TLS OpenSSL(default) or
mbedTLS(TLSUV_TLSLIB=mbedtls).
Some features are only available with OpenSSL
llhttp only with HTTP enabled
zlib only with HTTP enabled

CMake configuration process will attempt to resolve the above dependencies via find_package() it is up to consuming project to provide them.

TLS engine support (BYFE - Bring Your Favorite Engine)

If either of two TLS library options are not working for, there is a mechanism to dynamically provide TLS implementation.

For example, you're already using another TLS library for your project, there is a way to use it inside tlsuv. Two API interfaces are defined for that purpose:

Building standalone

See development instruction for building this project standalone for checking out samples, or contributing.

Getting Help


Please use these community resources for getting help. We use GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

Copyright© 2018-2024. NetFoundry, Inc.