瀏覽代碼

package/python-orjson: new package

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Graeme Smecher 3 年之前
父節點
當前提交
b735fef529
共有 5 個文件被更改,包括 42 次插入0 次删除
  1. 3 0
      DEVELOPERS
  2. 1 0
      package/Config.in
  3. 12 0
      package/python-orjson/Config.in
  4. 4 0
      package/python-orjson/python-orjson.hash
  5. 22 0
      package/python-orjson/python-orjson.mk

+ 3 - 0
DEVELOPERS

@@ -1118,6 +1118,9 @@ F:	package/trace-cmd/
 F:	package/udisks/
 F:	toolchain/
 
+N:	Graeme Smecher <gsmecher@threespeedlogic.com>
+F:	package/python-orjson/
+
 N:	Gregory Dymarek <gregd72002@gmail.com>
 F:	package/ding-libs/
 F:	package/gengetopt/

+ 1 - 0
package/Config.in

@@ -1112,6 +1112,7 @@ menu "External python modules"
 	source "package/python-numpy/Config.in"
 	source "package/python-oauthlib/Config.in"
 	source "package/python-opcua-asyncio/Config.in"
+	source "package/python-orjson/Config.in"
 	source "package/python-packaging/Config.in"
 	source "package/python-paho-mqtt/Config.in"
 	source "package/python-paramiko/Config.in"

+ 12 - 0
package/python-orjson/Config.in

@@ -0,0 +1,12 @@
+config BR2_PACKAGE_PYTHON_ORJSON
+	bool "python-orjson"
+	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+	select BR2_PACKAGE_PYTHON_CFFI # runtime
+	help
+	  orjson is a fast, correct JSON library for Python. It
+	  benchmarks as the fastest Python library for JSON and is more
+	  correct than the standard json library or other third-party
+	  libraries. It serializes dataclass, datetime, numpy, and UUID
+	  instances natively.
+
+	  https://github.com/ijl/orjson

+ 4 - 0
package/python-orjson/python-orjson.hash

@@ -0,0 +1,4 @@
+# Locally calculated
+sha256  4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6  python-orjson-3.6.7.tar.gz
+sha256  a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2  LICENSE-APACHE
+sha256  23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3  LICENSE-MIT

+ 22 - 0
package/python-orjson/python-orjson.mk

@@ -0,0 +1,22 @@
+################################################################################
+#
+# python-orjson
+#
+################################################################################
+
+PYTHON_ORJSON_VERSION = 3.6.7
+PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
+PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
+PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
+PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
+PYTHON_ORJSON_CARGO_ENV = \
+	PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
+
+# orjson uses "maturin" to generate distribution packages - rather than teach
+# buildroot how to understand this, we reach in and install directly.
+define PYTHON_ORJSON_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 0755 -D $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
+		$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
+endef
+
+$(eval $(cargo-package))