Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:master commit in: dev-cpp/wangle/
Date: Thu, 29 Apr 2021 08:23:35
Message-Id: 1619644037.e11b7c025a56e2e0de12ecf4def8faa331c2e5f5.mgorny@gentoo
1 commit: e11b7c025a56e2e0de12ecf4def8faa331c2e5f5
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Wed Apr 28 20:49:05 2021 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Apr 28 21:07:17 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e11b7c02
7
8 dev-cpp/wangle: new package
9
10 thanks @telans
11
12 Package-Manager: Portage-3.0.18, Repoman-3.0.3
13 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
14
15 dev-cpp/wangle/Manifest | 1 +
16 dev-cpp/wangle/metadata.xml | 41 ++++++++++++++++++++++++++++++
17 dev-cpp/wangle/wangle-2021.04.19.00.ebuild | 37 +++++++++++++++++++++++++++
18 3 files changed, 79 insertions(+)
19
20 diff --git a/dev-cpp/wangle/Manifest b/dev-cpp/wangle/Manifest
21 new file mode 100644
22 index 000000000..ee48e6581
23 --- /dev/null
24 +++ b/dev-cpp/wangle/Manifest
25 @@ -0,0 +1 @@
26 +DIST wangle-2021.04.19.00.tar.gz 336087 BLAKE2B d06150422813c7f7a4663bea59d1e78d8aa2a6023b70fad94aa700d5879b36319a77329d5e4523a5b992cb2ab9dbbd1db1e594e60dbaeddee4cd5881d7385fac SHA512 dc8e2f34d5be2e674cd87c630ca6a647686bae383f5ed678577a7709f9a05483ddabcaa220f5d9afea2e24c78b73b64c9a8d74821b215a1c094498d3528e8896
27
28 diff --git a/dev-cpp/wangle/metadata.xml b/dev-cpp/wangle/metadata.xml
29 new file mode 100644
30 index 000000000..91cb5ddee
31 --- /dev/null
32 +++ b/dev-cpp/wangle/metadata.xml
33 @@ -0,0 +1,41 @@
34 +<?xml version="1.0" encoding="UTF-8"?>
35 +<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
36 +<pkgmetadata>
37 + <longdescription lang="en">
38 +Client / Server abstraction
39 +
40 +You're probably familiar with Java's Netty, or Python's twisted, or similar libraries.
41 +
42 +It is built on top of folly/async/io, so it's one level up the stack from that (or similar abstractions like boost::asio)
43 +
44 +ServerBootstrap - easily manage creation of threadpools and pipelines
45 +
46 +ClientBootstrap - the same for clients
47 +
48 +Pipeline - set up a series of handlers that modify your socket data
49 +
50 +Request / Response abstraction
51 +
52 +This is roughly equivalent to the Finagle library.
53 +
54 +Aims to provide easy testing, load balancing, client pooling, retry logic, etc. for any request/response type service - i.e. thrift, http, etc.
55 +
56 +Service - a matched interface between client/server. A server will implement this interface, and a client will call in to it. These are protocol-specific
57 +
58 +ServiceFilter - a generic filter on a service. Examples: stats, request timeouts, rate limiting
59 +
60 +ServiceFactory - A factory that creates client connections. Any protocol specific setup code goes here
61 +
62 +ServiceFactoryFilter - Generic filters that control how connections are created. Client examples: load balancing, pooling, idle timeouts, markdowns, etc.
63 +
64 +ServerBootstrap
65 +
66 +Easily create a new server
67 +
68 +ServerBootstrap does the work to set up one or multiple acceptor threads, and one or multiple sets of IO threads. The thread pools can be the same. SO_REUSEPORT is automatically supported for multiple accept threads. tcp is most common, although udp is also supported.
69 + </longdescription>
70 + <upstream>
71 + <bugs-to>https://github.com/facebook/wangle/issues</bugs-to>
72 + <remote-id type="github">facebook/wangle</remote-id>
73 + </upstream>
74 +</pkgmetadata>
75
76 diff --git a/dev-cpp/wangle/wangle-2021.04.19.00.ebuild b/dev-cpp/wangle/wangle-2021.04.19.00.ebuild
77 new file mode 100644
78 index 000000000..35ce9889b
79 --- /dev/null
80 +++ b/dev-cpp/wangle/wangle-2021.04.19.00.ebuild
81 @@ -0,0 +1,37 @@
82 +# Copyright 2021 Gentoo Authors
83 +# Distributed under the terms of the GNU General Public License v2
84 +
85 +EAPI=7
86 +
87 +inherit cmake
88 +
89 +DESCRIPTION="Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way"
90 +HOMEPAGE="https://github.com/facebook/wangle"
91 +
92 +SRC_URI="https://github.com/facebook/wangle/archive/v${PV}.tar.gz -> ${P}.tar.gz"
93 +
94 +LICENSE="Apache-2.0"
95 +SLOT="0"
96 +KEYWORDS="~amd64"
97 +
98 +CMAKE_USE_DIR="${S}/wangle"
99 +
100 +DEPEND="
101 + ~dev-cpp/fizz-${PV}:=
102 + ~dev-cpp/folly-${PV}:=
103 + dev-cpp/gflags
104 + dev-cpp/glog
105 + dev-libs/double-conversion
106 + dev-libs/libevent
107 + dev-libs/libfmt
108 + dev-libs/openssl:0=
109 +"
110 +RDEPEND="${DEPEND}"
111 +
112 +src_configure() {
113 + local mycmakeargs=(
114 + -DLIB_INSTALL_DIR=$(get_libdir)
115 + )
116 +
117 + cmake_src_configure
118 +}