commit:     e11b7c025a56e2e0de12ecf4def8faa331c2e5f5
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Wed Apr 28 20:49:05 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 28 21:07:17 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e11b7c02

dev-cpp/wangle: new package

thanks @telans

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 dev-cpp/wangle/Manifest                    |  1 +
 dev-cpp/wangle/metadata.xml                | 41 ++++++++++++++++++++++++++++++
 dev-cpp/wangle/wangle-2021.04.19.00.ebuild | 37 +++++++++++++++++++++++++++
 3 files changed, 79 insertions(+)

diff --git a/dev-cpp/wangle/Manifest b/dev-cpp/wangle/Manifest
new file mode 100644
index 000000000..ee48e6581
--- /dev/null
+++ b/dev-cpp/wangle/Manifest
@@ -0,0 +1 @@
+DIST wangle-2021.04.19.00.tar.gz 336087 BLAKE2B 
d06150422813c7f7a4663bea59d1e78d8aa2a6023b70fad94aa700d5879b36319a77329d5e4523a5b992cb2ab9dbbd1db1e594e60dbaeddee4cd5881d7385fac
 SHA512 
dc8e2f34d5be2e674cd87c630ca6a647686bae383f5ed678577a7709f9a05483ddabcaa220f5d9afea2e24c78b73b64c9a8d74821b215a1c094498d3528e8896

diff --git a/dev-cpp/wangle/metadata.xml b/dev-cpp/wangle/metadata.xml
new file mode 100644
index 000000000..91cb5ddee
--- /dev/null
+++ b/dev-cpp/wangle/metadata.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+       <longdescription lang="en">
+Client / Server abstraction
+
+You're probably familiar with Java's Netty, or Python's twisted, or similar 
libraries.
+
+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)
+
+ServerBootstrap - easily manage creation of threadpools and pipelines
+
+ClientBootstrap - the same for clients
+
+Pipeline - set up a series of handlers that modify your socket data
+
+Request / Response abstraction
+
+This is roughly equivalent to the Finagle library.
+
+Aims to provide easy testing, load balancing, client pooling, retry logic, 
etc. for any request/response type service - i.e. thrift, http, etc.
+
+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
+
+ServiceFilter - a generic filter on a service. Examples: stats, request 
timeouts, rate limiting
+
+ServiceFactory - A factory that creates client connections. Any protocol 
specific setup code goes here
+
+ServiceFactoryFilter - Generic filters that control how connections are 
created. Client examples: load balancing, pooling, idle timeouts, markdowns, 
etc.
+
+ServerBootstrap
+
+Easily create a new server
+
+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.
+       </longdescription>
+       <upstream>
+               <bugs-to>https://github.com/facebook/wangle/issues</bugs-to>
+               <remote-id type="github">facebook/wangle</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/dev-cpp/wangle/wangle-2021.04.19.00.ebuild 
b/dev-cpp/wangle/wangle-2021.04.19.00.ebuild
new file mode 100644
index 000000000..35ce9889b
--- /dev/null
+++ b/dev-cpp/wangle/wangle-2021.04.19.00.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Wangle is a framework providing a set of common client/server 
abstractions for building services in a consistent, modular, and composable way"
+HOMEPAGE="https://github.com/facebook/wangle";
+
+SRC_URI="https://github.com/facebook/wangle/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+CMAKE_USE_DIR="${S}/wangle"
+
+DEPEND="
+       ~dev-cpp/fizz-${PV}:=
+       ~dev-cpp/folly-${PV}:=
+       dev-cpp/gflags
+       dev-cpp/glog
+       dev-libs/double-conversion
+       dev-libs/libevent
+       dev-libs/libfmt
+       dev-libs/openssl:0=
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+       local mycmakeargs=(
+               -DLIB_INSTALL_DIR=$(get_libdir)
+       )
+
+       cmake_src_configure
+}

Reply via email to