diff options
Diffstat (limited to 'dev-cpp/wangle')
-rw-r--r-- | dev-cpp/wangle/Manifest | 1 | ||||
-rw-r--r-- | dev-cpp/wangle/metadata.xml | 51 | ||||
-rw-r--r-- | dev-cpp/wangle/wangle-2023.02.06.00.ebuild | 43 |
3 files changed, 95 insertions, 0 deletions
diff --git a/dev-cpp/wangle/Manifest b/dev-cpp/wangle/Manifest new file mode 100644 index 000000000..42fdce640 --- /dev/null +++ b/dev-cpp/wangle/Manifest @@ -0,0 +1 @@ +DIST wangle-2023.02.06.00.tar.gz 339890 BLAKE2B a1b1d50083bac9de7ea6bf586cd677d44a3baf5fcec0ac92d82cda16fcfad055b1e91fec2fa75143ab1ee488bc638a0d6153d19b65b30fc63829fdfdfd0c3156 SHA512 93ea81c5a4b5929e543abd77c2a0e70cec33dcdf928665f71436c1ee5d2afbf338d7ca7000e124c295821f68a1763c847f306eb8ece487047548989609a8cbc0 diff --git a/dev-cpp/wangle/metadata.xml b/dev-cpp/wangle/metadata.xml new file mode 100644 index 000000000..9b43b5159 --- /dev/null +++ b/dev-cpp/wangle/metadata.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM 'http://www.gentoo.org/dtd/metadata.dtd'> +<pkgmetadata> + <maintainer type="person"> + <email>denis7774@gmail.com</email> + <name>Denis Reva</name> + <description>rarogcmex</description> + </maintainer> + <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-2023.02.06.00.ebuild b/dev-cpp/wangle/wangle-2023.02.06.00.ebuild new file mode 100644 index 000000000..3dd02e256 --- /dev/null +++ b/dev-cpp/wangle/wangle-2023.02.06.00.ebuild @@ -0,0 +1,43 @@ +# Copyright 2021-2023 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/${PV}" +KEYWORDS="~amd64" +IUSE="examples test" + +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 +" + +RESTRICT="!test? ( test )" +CMAKE_USE_DIR="${S}/wangle" + +src_configure() { + local mycmakeargs=( + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_TESTS=$(usex test) + -DLIB_INSTALL_DIR=$(get_libdir) + ) + + cmake_src_configure +} |