git: 7335a129b2ea - main - devel/py-pycrdt-websocket: Add py-pycrdt-websocket 0.12.5
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Dec 2023 20:53:56 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=7335a129b2eaeb23180b1b0e4f6c581f3e02d9d7
commit 7335a129b2eaeb23180b1b0e4f6c581f3e02d9d7
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2023-12-14 20:41:48 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2023-12-14 20:41:48 +0000
devel/py-pycrdt-websocket: Add py-pycrdt-websocket 0.12.5
Pycrdt-websocket is a Python library for building WebSocket servers and clients
that connect and synchronize shared documents. It can be used to create
collaborative web applications.
The following diagram illustrates a typical architecture. The goal is to share a
document among several clients.
Each client has an instance of a Doc, representing their view of a document. A
shared document also lives in a room on the server side. Conceptually, a room
can be seen as the place where clients collaborate on a document. The WebSocket
to which a client connects points to the corresponding room through the endpoint
path. In the example below, clients A and B connect to a WebSocket at path
room-1, and thus both clients find themselves in a room called room-1. All the
Doc synchronization logic is taken care of by the WebsocketProvider.
Each update to a shared document can be persisted to disk using a store, which
can be a file or a database.
---
devel/Makefile | 1 +
devel/py-pycrdt-websocket/Makefile | 30 ++++++++++++++++++++++++++++++
devel/py-pycrdt-websocket/distinfo | 3 +++
devel/py-pycrdt-websocket/pkg-descr | 17 +++++++++++++++++
4 files changed, 51 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index 6bdfb8d9d9c2..7211c42f6749 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -5284,6 +5284,7 @@
SUBDIR += py-pycomplete
SUBDIR += py-pycparser
SUBDIR += py-pycrdt
+ SUBDIR += py-pycrdt-websocket
SUBDIR += py-pydantic
SUBDIR += py-pydantic-core
SUBDIR += py-pydantic-extra-types
diff --git a/devel/py-pycrdt-websocket/Makefile b/devel/py-pycrdt-websocket/Makefile
new file mode 100644
index 000000000000..81d7232c0f5f
--- /dev/null
+++ b/devel/py-pycrdt-websocket/Makefile
@@ -0,0 +1,30 @@
+PORTNAME= pycrdt-websocket
+PORTVERSION= 0.12.5
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= pycrdt_websocket-${PORTVERSION}
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= WebSocket connector for pycrdt
+WWW= https://github.com/jupyter-server/pycrdt-websocket
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosqlite>=0.18.0<1:databases/py-aiosqlite@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}anyio>=3.6.2<5:devel/py-anyio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pycrdt>=0.7.0<0.8.0:devel/py-pycrdt@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= DJANGO
+DJANGO_DESC= Django support
+
+DJANGO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}channels>=0:www/py-channels@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/devel/py-pycrdt-websocket/distinfo b/devel/py-pycrdt-websocket/distinfo
new file mode 100644
index 000000000000..bc5238211b23
--- /dev/null
+++ b/devel/py-pycrdt-websocket/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1702543602
+SHA256 (pycrdt_websocket-0.12.5.tar.gz) = f7bec9378a07e99ae99f6f14018e70f95250017cf1190ef2c1736cce0cd56a2c
+SIZE (pycrdt_websocket-0.12.5.tar.gz) = 16791
diff --git a/devel/py-pycrdt-websocket/pkg-descr b/devel/py-pycrdt-websocket/pkg-descr
new file mode 100644
index 000000000000..a7f3582fb57f
--- /dev/null
+++ b/devel/py-pycrdt-websocket/pkg-descr
@@ -0,0 +1,17 @@
+Pycrdt-websocket is a Python library for building WebSocket servers and clients
+that connect and synchronize shared documents. It can be used to create
+collaborative web applications.
+
+The following diagram illustrates a typical architecture. The goal is to share a
+document among several clients.
+
+Each client has an instance of a Doc, representing their view of a document. A
+shared document also lives in a room on the server side. Conceptually, a room
+can be seen as the place where clients collaborate on a document. The WebSocket
+to which a client connects points to the corresponding room through the endpoint
+path. In the example below, clients A and B connect to a WebSocket at path
+room-1, and thus both clients find themselves in a room called room-1. All the
+Doc synchronization logic is taken care of by the WebsocketProvider.
+
+Each update to a shared document can be persisted to disk using a store, which
+can be a file or a database.