Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Prerequisites to README #405

Merged
merged 7 commits into from
Dec 16, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 26 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,39 @@
MLS++
=====

Implementation of the proposed [Messaging Layer
Security](https://github.com/mlswg/mls-protocol/blob/master/draft-ietf-mls-protocol.md)
protocol in C++. Depends on C++17, STL for data structures, and
OpenSSL or BoringSSL for crypto.
Implementation of the proposed [Messaging Layer Security](https://github.com/mlswg/mls-protocol/blob/master/draft-ietf-mls-protocol.md) protocol in C++. Depends on C++17, STL for data structures, and OpenSSL or BoringSSL for crypto.

Prerequisites
-------------

MLSPP requires a few prerequisite libraries in order to fully build.

* [nlohmann::json](https://github.com/nlohmann/json) - Tested with latest versions.
* Cryptography Library - OpenSSL 1.1.1, OpenSSL 3.0, BoringSSL compatible (see details below)
* [doctest](https://github.com/doctest/doctest) - Tested with latest versions. Only required when building the test suite.

### Installing Prerequisites

The following should satisfy the prerequisites for these popular platforms. However, [vcpkg](https://vcpkg.io/en/) is recommended for developer builds.

```sh
# Linux - Ubuntu 20.04, Ubuntu 22.04
$ sudo apt install libssl-dev nlohmann-json3-dev doctest-dev

# MacOs - Homebrew
$ brew install nlohmann-json doctest
```

Quickstart
----------

A convenience Makefile is included to avoid the need to remember a bunch of
CMake parameters.
A convenience Makefile is included to avoid the need to remember a bunch of CMake parameters. It will use [vcpkg](https://vcpkg.io/en/) to satisfy all dependencies.

```
> make # Configures and builds the library
> make dev # Configure a "developer" build with tests and checks
> make dev # Configure a "developer" build with tests and checks using OpenSSL 1.1
> make dev3 # Configure a "developer" build with tests and checks using OpenSSL 3.0
> make devB # Configure a "developer" build with tests and checks using OpenSSL 3.0
> make test # Builds and runs tests
> make format # Runs clang-format over the source
```
Expand Down
Loading