package/protozero: new package
authorMaxim Kochetkov <fido_max@inbox.ru>
Thu, 15 Apr 2021 15:03:54 +0000 (18:03 +0300)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thu, 15 Apr 2021 19:48:15 +0000 (21:48 +0200)
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@inbox.ru>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
DEVELOPERS
package/Config.in
package/protozero/Config.in [new file with mode: 0644]
package/protozero/protozero.hash [new file with mode: 0644]
package/protozero/protozero.mk [new file with mode: 0644]

index 1348b8eb9100d44d191be4cc85d2511096061652..9390daa2fadf703ccfae6cf5ae6a86561abab6a3 100644 (file)
@@ -1840,6 +1840,7 @@ N:        Max Filippov <jcmvbkbc@gmail.com>
 F:     arch/Config.in.xtensa
 
 N:     Maxim Kochetkov <fido_max@inbox.ru>
+F:     package/protozero/
 F:     package/timescaledb/
 
 N:     Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
index ea0e9edc3e2597c919905058bbae81f7cf3357a0..c5014faba13de71ebafbd27b6c5bd0440bb39522 100644 (file)
@@ -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 (file)
index 0000000..19048df
--- /dev/null
@@ -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 (file)
index 0000000..5453e01
--- /dev/null
@@ -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 (file)
index 0000000..e4ce1a4
--- /dev/null
@@ -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))