aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@FreeBSD.org>2023-12-14 20:41:47 +0000
committerPo-Chuan Hsieh <sunpoet@FreeBSD.org>2023-12-14 20:41:47 +0000
commit3df1ab5ea198a58c97ddf4fcabdc013502d9a6ca (patch)
tree8bcec8c2045d7daef075c2c3918479b9d9d90a7d
parentb4364cc5701027eb8c5b257aa3c4bdfa4f3bfe58 (diff)
downloadports-3df1ab5ea198a58c97ddf4fcabdc013502d9a6ca.tar.gz
ports-3df1ab5ea198a58c97ddf4fcabdc013502d9a6ca.zip
devel/py-pycrdt: Add py-pycrdt 0.7.1
Pycrdt is a Python CRDT library that provides bindings for Yrs, the Rust port of the Yjs framework. Conflict-free Replicated Data Types (CRDTs) allow creating shared documents that can automatically merge changes made concurrently on different "copies" of the data. When the data lives on different machines, they make it possible to build distributed systems that work with local data, leaving the synchronization and conflict resolution with remote data to the CRDT algorithm, which ensures that all data replicas eventually converge to the same state.
-rw-r--r--devel/Makefile1
-rw-r--r--devel/py-pycrdt/Makefile27
-rw-r--r--devel/py-pycrdt/Makefile.crates58
-rw-r--r--devel/py-pycrdt/distinfo119
-rw-r--r--devel/py-pycrdt/pkg-descr9
5 files changed, 214 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 53c0f40c089b..6bdfb8d9d9c2 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5283,6 +5283,7 @@
SUBDIR += py-pycompilation
SUBDIR += py-pycomplete
SUBDIR += py-pycparser
+ SUBDIR += py-pycrdt
SUBDIR += py-pydantic
SUBDIR += py-pydantic-core
SUBDIR += py-pydantic-extra-types
diff --git a/devel/py-pycrdt/Makefile b/devel/py-pycrdt/Makefile
new file mode 100644
index 000000000000..9fe0f603c194
--- /dev/null
+++ b/devel/py-pycrdt/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= pycrdt
+PORTVERSION= 0.7.1
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTFILES= pycrdt-${PORTVERSION}${EXTRACT_SUFX}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= Python bindings for Yrs
+WWW= https://jupyter-server.github.io/pycrdt/ \
+ https://github.com/jupyter-server/pycrdt
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.2.3<2:devel/py-maturin@${PY_FLAVOR}
+
+USES= cargo python
+USE_PYTHON= autoplist concurrent pep517
+
+CARGO_BUILD= no
+CARGO_INSTALL= no
+
+post-install:
+ ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
+
+.include <bsd.port.mk>
diff --git a/devel/py-pycrdt/Makefile.crates b/devel/py-pycrdt/Makefile.crates
new file mode 100644
index 000000000000..4af7e846d0a2
--- /dev/null
+++ b/devel/py-pycrdt/Makefile.crates
@@ -0,0 +1,58 @@
+CARGO_CRATES= atomic_refcell-0.1.13 \
+ autocfg-1.1.0 \
+ bitflags-1.3.2 \
+ bumpalo-3.14.0 \
+ cfg-if-1.0.0 \
+ getrandom-0.1.16 \
+ indoc-1.0.9 \
+ itoa-1.0.10 \
+ js-sys-0.3.66 \
+ libc-0.2.150 \
+ lock_api-0.4.11 \
+ log-0.4.20 \
+ memoffset-0.9.0 \
+ once_cell-1.19.0 \
+ parking_lot-0.12.1 \
+ parking_lot_core-0.9.9 \
+ ppv-lite86-0.2.17 \
+ proc-macro2-1.0.70 \
+ pyo3-0.19.2 \
+ pyo3-build-config-0.19.2 \
+ pyo3-ffi-0.19.2 \
+ pyo3-macros-0.19.2 \
+ pyo3-macros-backend-0.19.2 \
+ quote-1.0.33 \
+ rand-0.7.3 \
+ rand_chacha-0.2.2 \
+ rand_core-0.5.1 \
+ rand_hc-0.2.0 \
+ redox_syscall-0.4.1 \
+ ryu-1.0.15 \
+ scopeguard-1.2.0 \
+ serde-1.0.193 \
+ serde_derive-1.0.193 \
+ serde_json-1.0.108 \
+ smallstr-0.3.0 \
+ smallvec-1.11.2 \
+ syn-1.0.109 \
+ syn-2.0.39 \
+ target-lexicon-0.12.12 \
+ thiserror-1.0.50 \
+ thiserror-impl-1.0.50 \
+ unicode-ident-1.0.12 \
+ unindent-0.1.11 \
+ wasi-0.9.0+wasi-snapshot-preview1 \
+ wasm-bindgen-0.2.89 \
+ wasm-bindgen-backend-0.2.89 \
+ wasm-bindgen-macro-0.2.89 \
+ wasm-bindgen-macro-support-0.2.89 \
+ wasm-bindgen-shared-0.2.89 \
+ windows-targets-0.48.5 \
+ windows_aarch64_gnullvm-0.48.5 \
+ windows_aarch64_msvc-0.48.5 \
+ windows_i686_gnu-0.48.5 \
+ windows_i686_msvc-0.48.5 \
+ windows_x86_64_gnu-0.48.5 \
+ windows_x86_64_gnullvm-0.48.5 \
+ windows_x86_64_msvc-0.48.5 \
+ yrs-0.17.2
diff --git a/devel/py-pycrdt/distinfo b/devel/py-pycrdt/distinfo
new file mode 100644
index 000000000000..398a737f615d
--- /dev/null
+++ b/devel/py-pycrdt/distinfo
@@ -0,0 +1,119 @@
+TIMESTAMP = 1702543600
+SHA256 (pycrdt-0.7.1.tar.gz) = 65ff21d4b5262683cd544129383bcfaf4f0bc6f735523e7a35f81f6943d589fd
+SIZE (pycrdt-0.7.1.tar.gz) = 26192
+SHA256 (rust/crates/atomic_refcell-0.1.13.crate) = 41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c
+SIZE (rust/crates/atomic_refcell-0.1.13.crate) = 11760
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bumpalo-3.14.0.crate) = 7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec
+SIZE (rust/crates/bumpalo-3.14.0.crate) = 82400
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce
+SIZE (rust/crates/getrandom-0.1.16.crate) = 25077
+SHA256 (rust/crates/indoc-1.0.9.crate) = bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306
+SIZE (rust/crates/indoc-1.0.9.crate) = 13475
+SHA256 (rust/crates/itoa-1.0.10.crate) = b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c
+SIZE (rust/crates/itoa-1.0.10.crate) = 10534
+SHA256 (rust/crates/js-sys-0.3.66.crate) = cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca
+SIZE (rust/crates/js-sys-0.3.66.crate) = 80765
+SHA256 (rust/crates/libc-0.2.150.crate) = 89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c
+SIZE (rust/crates/libc-0.2.150.crate) = 719359
+SHA256 (rust/crates/lock_api-0.4.11.crate) = 3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45
+SIZE (rust/crates/lock_api-0.4.11.crate) = 27487
+SHA256 (rust/crates/log-0.4.20.crate) = b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f
+SIZE (rust/crates/log-0.4.20.crate) = 38307
+SHA256 (rust/crates/memoffset-0.9.0.crate) = 5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c
+SIZE (rust/crates/memoffset-0.9.0.crate) = 9033
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
+SHA256 (rust/crates/parking_lot_core-0.9.9.crate) = 4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e
+SIZE (rust/crates/parking_lot_core-0.9.9.crate) = 32445
+SHA256 (rust/crates/ppv-lite86-0.2.17.crate) = 5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de
+SIZE (rust/crates/ppv-lite86-0.2.17.crate) = 22242
+SHA256 (rust/crates/proc-macro2-1.0.70.crate) = 39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b
+SIZE (rust/crates/proc-macro2-1.0.70.crate) = 44343
+SHA256 (rust/crates/pyo3-0.19.2.crate) = e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38
+SIZE (rust/crates/pyo3-0.19.2.crate) = 418228
+SHA256 (rust/crates/pyo3-build-config-0.19.2.crate) = 076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5
+SIZE (rust/crates/pyo3-build-config-0.19.2.crate) = 29206
+SHA256 (rust/crates/pyo3-ffi-0.19.2.crate) = e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9
+SIZE (rust/crates/pyo3-ffi-0.19.2.crate) = 66500
+SHA256 (rust/crates/pyo3-macros-0.19.2.crate) = dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1
+SIZE (rust/crates/pyo3-macros-0.19.2.crate) = 7173
+SHA256 (rust/crates/pyo3-macros-backend-0.19.2.crate) = 947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536
+SIZE (rust/crates/pyo3-macros-backend-0.19.2.crate) = 49962
+SHA256 (rust/crates/quote-1.0.33.crate) = 5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae
+SIZE (rust/crates/quote-1.0.33.crate) = 28090
+SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
+SIZE (rust/crates/rand-0.7.3.crate) = 112246
+SHA256 (rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
+SIZE (rust/crates/rand_chacha-0.2.2.crate) = 13267
+SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
+SIZE (rust/crates/rand_core-0.5.1.crate) = 21116
+SHA256 (rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c
+SIZE (rust/crates/rand_hc-0.2.0.crate) = 11670
+SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa
+SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858
+SHA256 (rust/crates/ryu-1.0.15.crate) = 1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741
+SIZE (rust/crates/ryu-1.0.15.crate) = 46906
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/serde-1.0.193.crate) = 25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89
+SIZE (rust/crates/serde-1.0.193.crate) = 76863
+SHA256 (rust/crates/serde_derive-1.0.193.crate) = 43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3
+SIZE (rust/crates/serde_derive-1.0.193.crate) = 55692
+SHA256 (rust/crates/serde_json-1.0.108.crate) = 3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b
+SIZE (rust/crates/serde_json-1.0.108.crate) = 146476
+SHA256 (rust/crates/smallstr-0.3.0.crate) = 63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d
+SIZE (rust/crates/smallstr-0.3.0.crate) = 12221
+SHA256 (rust/crates/smallvec-1.11.2.crate) = 4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970
+SIZE (rust/crates/smallvec-1.11.2.crate) = 34801
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.39.crate) = 23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a
+SIZE (rust/crates/syn-2.0.39.crate) = 244129
+SHA256 (rust/crates/target-lexicon-0.12.12.crate) = 14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a
+SIZE (rust/crates/target-lexicon-0.12.12.crate) = 25156
+SHA256 (rust/crates/thiserror-1.0.50.crate) = f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2
+SIZE (rust/crates/thiserror-1.0.50.crate) = 19414
+SHA256 (rust/crates/thiserror-impl-1.0.50.crate) = 266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8
+SIZE (rust/crates/thiserror-impl-1.0.50.crate) = 15357
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/unindent-0.1.11.crate) = e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c
+SIZE (rust/crates/unindent-0.1.11.crate) = 7700
+SHA256 (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
+SIZE (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521
+SHA256 (rust/crates/wasm-bindgen-0.2.89.crate) = 0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e
+SIZE (rust/crates/wasm-bindgen-0.2.89.crate) = 181935
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826
+SIZE (rust/crates/wasm-bindgen-backend-0.2.89.crate) = 28205
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2
+SIZE (rust/crates/wasm-bindgen-macro-0.2.89.crate) = 13906
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.89.crate) = 20008
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f
+SIZE (rust/crates/wasm-bindgen-shared-0.2.89.crate) = 7265
+SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c
+SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
+SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492
+SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc
+SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483
+SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e
+SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891
+SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406
+SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300
+SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e
+SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc
+SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486
+SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538
+SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412
+SHA256 (rust/crates/yrs-0.17.2.crate) = 68aea14c6c33f2edd8a5ff9415360cfa5b98d90cce30c5ee3be59a8419fb15a9
+SIZE (rust/crates/yrs-0.17.2.crate) = 212825
diff --git a/devel/py-pycrdt/pkg-descr b/devel/py-pycrdt/pkg-descr
new file mode 100644
index 000000000000..0ba337acbc34
--- /dev/null
+++ b/devel/py-pycrdt/pkg-descr
@@ -0,0 +1,9 @@
+Pycrdt is a Python CRDT library that provides bindings for Yrs, the Rust port of
+the Yjs framework.
+
+Conflict-free Replicated Data Types (CRDTs) allow creating shared documents that
+can automatically merge changes made concurrently on different "copies" of the
+data. When the data lives on different machines, they make it possible to build
+distributed systems that work with local data, leaving the synchronization and
+conflict resolution with remote data to the CRDT algorithm, which ensures that
+all data replicas eventually converge to the same state.