summaryrefslogtreecommitdiff
path: root/dev-cpp/wangle
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/wangle')
-rw-r--r--dev-cpp/wangle/Manifest1
-rw-r--r--dev-cpp/wangle/metadata.xml46
-rw-r--r--dev-cpp/wangle/wangle-2022.03.21.00.ebuild39
3 files changed, 86 insertions, 0 deletions
diff --git a/dev-cpp/wangle/Manifest b/dev-cpp/wangle/Manifest
new file mode 100644
index 000000000000..0b0c9d87b600
--- /dev/null
+++ b/dev-cpp/wangle/Manifest
@@ -0,0 +1 @@
+DIST wangle-2022.03.21.00.tar.gz 355164 BLAKE2B 876863bb5d0e5c7fd5f3408f9f2233b1995ef838b165bbb9f8772667e1ca5fa98f4ae5eb686e2ef94198bdb373daa2ce96720253f550a808369b8cca0ec6d10b SHA512 069fe7758ccb2f33665f53109047f2e0158e248fda8c760eddd978afd6980acbc6421db60721bf320deca557369377c8757f13c67f8685e3a98394324e75e72e
diff --git a/dev-cpp/wangle/metadata.xml b/dev-cpp/wangle/metadata.xml
new file mode 100644
index 000000000000..5b7146169a27
--- /dev/null
+++ b/dev-cpp/wangle/metadata.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+ <maintainer type="person">
+ <description>co-maintainers welcome</description>
+ <email>lssndrbarbieri@gmail.com</email>
+ <name>Alessandro Barbieri</name>
+ </maintainer>
+ <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-2022.03.21.00.ebuild b/dev-cpp/wangle/wangle-2022.03.21.00.ebuild
new file mode 100644
index 000000000000..1fe53a582c78
--- /dev/null
+++ b/dev-cpp/wangle/wangle-2022.03.21.00.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Framework providing common client/server abstractions"
+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"
+
+RDEPEND="
+ ~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=
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/gtest
+"
+
+CMAKE_USE_DIR="${S}/wangle"
+
+src_configure() {
+ local mycmakeargs=(
+ -DLIB_INSTALL_DIR=$(get_libdir)
+ )
+
+ cmake_src_configure
+}