[Buildroot] [PATCH v3 1/3] package/protozero: new package

Maxim Kochetkov fido_max at inbox.ru
Thu Apr 15 15:03:54 UTC 2021


Minimalistic protocol buffer decoder and encoder in C++.
Designed for high performance. Suitable for writing zero copy
parsers and encoders with minimal need for run-time allocation
of memory.

Low-level: this is designed to be a building block for writing
a very customized decoder for a stable protobuf schema. If your
protobuf schema is changing frequently or lazy decoding is not
critical for your application then this approach offers
no value: just use the C++ API that can be generated with
the Google Protobufs protoc program.

https://github.com/mapbox/protozero

Signed-off-by: Maxim Kochetkov <fido_max at inbox.ru>
---
 DEVELOPERS                       |  1 +
 package/Config.in                |  1 +
 package/protozero/Config.in      | 20 ++++++++++++++++++++
 package/protozero/protozero.hash |  4 ++++
 package/protozero/protozero.mk   | 17 +++++++++++++++++
 5 files changed, 43 insertions(+)
 create mode 100644 package/protozero/Config.in
 create mode 100644 package/protozero/protozero.hash
 create mode 100644 package/protozero/protozero.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 1348b8eb91..9390daa2fa 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1840,6 +1840,7 @@ N:	Max Filippov <jcmvbkbc at gmail.com>
 F:	arch/Config.in.xtensa
 
 N:	Maxim Kochetkov <fido_max at inbox.ru>
+F:	package/protozero/
 F:	package/timescaledb/
 
 N:	Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
diff --git a/package/Config.in b/package/Config.in
index ea0e9edc3e..c5014faba1 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1966,6 +1966,7 @@ endif
 	source "package/poco/Config.in"
 	source "package/protobuf/Config.in"
 	source "package/protobuf-c/Config.in"
+	source "package/protozero/Config.in"
 	source "package/qhull/Config.in"
 	source "package/qlibc/Config.in"
 	source "package/riemann-c-client/Config.in"
diff --git a/package/protozero/Config.in b/package/protozero/Config.in
new file mode 100644
index 0000000000..f187840565
--- /dev/null
+++ b/package/protozero/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_PROTOZERO
+	bool "protozero"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
+	help
+	  Minimalistic protocol buffer decoder and encoder in C++.
+	  Designed for high performance. Suitable for writing zero copy
+	  parsers and encoders with minimal need for run-time allocation
+	  of memory.
+	  Low-level: this is designed to be a building block for writing
+	  a very customized decoder for a stable protobuf schema. If your
+	  protobuf schema is changing frequently or lazy decoding is not
+	  critical for your application then this approach offers
+	  no value: just use the C++ API that can be generated with
+	  the Google Protobufs protoc program.
+
+	  https://github.com/mapbox/protozero
+
+comment "protozero needs a toolchain w/ C++,  gcc >= 4.7"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
diff --git a/package/protozero/protozero.hash b/package/protozero/protozero.hash
new file mode 100644
index 0000000000..5453e01ecf
--- /dev/null
+++ b/package/protozero/protozero.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256  beffbdfab060854fd770178a8db9c028b5b6ee4a059a2fed82c46390a85f3f31  protozero-1.7.0.tar.gz
+sha256  1f4d477e3c2d74d8706c8f05437bd86804abe46853b1f233ce1549a4de76fa49  LICENSE.md
+sha256  0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594  LICENSE.from_folly
diff --git a/package/protozero/protozero.mk b/package/protozero/protozero.mk
new file mode 100644
index 0000000000..e4ce1a4730
--- /dev/null
+++ b/package/protozero/protozero.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# protozero
+#
+################################################################################
+
+PROTOZERO_VERSION = 1.7.0
+PROTOZERO_SITE = $(call github,mapbox,protozero,v$(PROTOZERO_VERSION))
+PROTOZERO_LICENSE = BSD-2-Clause, Apache-2.0
+PROTOZERO_LICENSE_FILES = LICENSE.md LICENSE.from_folly
+PROTOZERO_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_PROTOBUF),y)
+PROTOZERO_DEPENDENCIES += protobuf
+endif
+
+$(eval $(cmake-package))
-- 
2.30.2



More information about the buildroot mailing list