1{ stdenv
2, lib
3, fetchFromGitHub
4, cmake
5, boost
6, libevent
7, double-conversion
8, glog
9, fmt_8
10, gflags
11, openssl
12, fizz
13, folly
14, gtest
15, libsodium
16, zlib
17}:
18
19stdenv.mkDerivation rec {
20 pname = "wangle";
21 version = "2023.04.03.00";
22
23 src = fetchFromGitHub {
24 owner = "facebook";
25 repo = "wangle";
26 rev = "v${version}";
27 sha256 = "sha256-ISf/ezcJKCNv5UEGSf+OmHjV+QkanbTNoAm2ci1qy0o=";
28 };
29
30 nativeBuildInputs = [ cmake ];
31
32 cmakeDir = "../wangle";
33
34 cmakeFlags = [
35 "-Wno-dev"
36 ] ++ lib.optionals stdenv.isDarwin [
37 "-DBUILD_TESTS=off" # Tests fail on Darwin due to missing utimensat
38 "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
39 ];
40
41 buildInputs = [
42 fmt_8
43 libsodium
44 zlib
45 boost
46 double-conversion
47 fizz
48 folly
49 gtest
50 glog
51 gflags
52 libevent
53 openssl
54 ];
55
56 meta = with lib; {
57 description = "An open-source C++ networking library";
58 longDescription = ''
59 Wangle is a framework providing a set of common client/server
60 abstractions for building services in a consistent, modular, and
61 composable way.
62 '';
63 homepage = "https://github.com/facebook/wangle";
64 license = licenses.asl20;
65 platforms = platforms.unix;
66 maintainers = with maintainers; [ pierreis kylesferrazza ];
67 };
68}