package/python-orjson: new package

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Graeme Smecher 2022-04-19 14:24:47 -07:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 96a802cab2
commit b735fef529
5 changed files with 42 additions and 0 deletions

View File

@ -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/

View File

@ -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"

View File

@ -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

View File

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

View File

@ -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))