diff options
author | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2024-04-05 00:36:56 +0000 |
---|---|---|
committer | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2024-04-05 00:36:56 +0000 |
commit | e6ffc0453c74f48031c7820db5dc43018e043151 (patch) | |
tree | e0d8f2b2b24bd5b0bc67e5e8665e36508fb8f5f7 | |
parent | ab8fadf8d4d01a13a2402aea2a4ceb2679842152 (diff) | |
download | ports-e6ffc0453c74f48031c7820db5dc43018e043151.tar.gz ports-e6ffc0453c74f48031c7820db5dc43018e043151.zip |
devel/py-msgspec: Add py-msgspec 0.18.6
msgspec is a fast serialization and validation library, with builtin support for
JSON, MessagePack, YAML, and TOML. It features:
- High performance encoders/decoders for common protocols. The JSON and
MessagePack implementations regularly benchmark as the fastest options for
Python.
- Support for a wide variety of Python types. Additional types may be supported
through extensions.
- Zero-cost schema validation using familiar Python type annotations. In
benchmarks msgspec decodes and validates JSON faster than orjson can decode it
alone.
- A speedy Struct type for representing structured data. If you already use
dataclasses or attrs, structs should feel familiar. However, they're 5-60x
faster for common operations.
All of this is included in a lightweight library with no required dependencies.
-rw-r--r-- | devel/Makefile | 1 | ||||
-rw-r--r-- | devel/py-msgspec/Makefile | 38 | ||||
-rw-r--r-- | devel/py-msgspec/distinfo | 3 | ||||
-rw-r--r-- | devel/py-msgspec/pkg-descr | 15 |
4 files changed, 57 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index b11e93c47356..c35e7bca0246 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -5059,6 +5059,7 @@ SUBDIR += py-msal SUBDIR += py-msal-extensions SUBDIR += py-msgpack + SUBDIR += py-msgspec SUBDIR += py-mulpyplexer SUBDIR += py-multi_key_dict SUBDIR += py-multipart diff --git a/devel/py-msgspec/Makefile b/devel/py-msgspec/Makefile new file mode 100644 index 000000000000..ad36cdd42ab1 --- /dev/null +++ b/devel/py-msgspec/Makefile @@ -0,0 +1,38 @@ +PORTNAME= msgspec +PORTVERSION= 0.18.6 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Fast serialization and validation library +WWW= https://jcristharif.com/msgspec/ \ + https://github.com/jcrist/msgspec + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist concurrent pep517 + +#NO_ARCH= yes + +OPTIONS_DEFINE= TOML YAML +OPTIONS_DEFAULT=TOML YAML + +TOML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tomli-w>=0:textproc/py-tomli-w@${PY_FLAVOR} +YAML_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}yaml>=0:devel/py-yaml@${PY_FLAVOR} + +.include <bsd.port.pre.mk> + +.if ${PORT_OPTIONS:MTOML} && ${PYTHON_REL} < 31100 +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}tomli>=0:textproc/py-tomli@${PY_FLAVOR} +.endif + +post-install: + ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + + +.include <bsd.port.post.mk> diff --git a/devel/py-msgspec/distinfo b/devel/py-msgspec/distinfo new file mode 100644 index 000000000000..b8fdd0eb5d47 --- /dev/null +++ b/devel/py-msgspec/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1712084448 +SHA256 (msgspec-0.18.6.tar.gz) = a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e +SIZE (msgspec-0.18.6.tar.gz) = 216757 diff --git a/devel/py-msgspec/pkg-descr b/devel/py-msgspec/pkg-descr new file mode 100644 index 000000000000..77f2ce419469 --- /dev/null +++ b/devel/py-msgspec/pkg-descr @@ -0,0 +1,15 @@ +msgspec is a fast serialization and validation library, with builtin support for +JSON, MessagePack, YAML, and TOML. It features: +- High performance encoders/decoders for common protocols. The JSON and + MessagePack implementations regularly benchmark as the fastest options for + Python. +- Support for a wide variety of Python types. Additional types may be supported + through extensions. +- Zero-cost schema validation using familiar Python type annotations. In + benchmarks msgspec decodes and validates JSON faster than orjson can decode it + alone. +- A speedy Struct type for representing structured data. If you already use + dataclasses or attrs, structs should feel familiar. However, they're 5-60x + faster for common operations. + +All of this is included in a lightweight library with no required dependencies. |