Skip to main content

No project description provided

Project description

Ypy

Ypy is a Python binding for Y-CRDT. It provides distributed data types that enable real-time collaboration between devices. Ypy can sync data with any other platform that has a Y-CRDT binding, allowing for seamless cross-domain communication. The library is a thin wrapper around Yrs, taking advantage of the safety and performance of Rust.

🧪 Project is still experimental. Expect the API to change before a version 1.0 stable release.

Installation

pip install y-py

Getting Started

Ypy provides many of the same shared data types as Yjs. All objects are shared within a YDoc and get modified within a transaction block.

import y_py as Y

d1 = Y.YDoc()
# Create a new YText object in the YDoc
text = d1.get_text('test')
# Start a transaction in order to update the text
with d1.begin_transaction() as txn:
    # Add text contents
    text.push(txn, "hello world!")

# Create another document
d2 = Y.YDoc()
# Share state with the original document
state_vector = Y.encode_state_vector(d2)
diff = Y.encode_state_as_update(d1, state_vector)
Y.apply_update(d2, diff)

value = str(d2.get_text('test'))

assert value == "hello world!"

Development Setup

  1. Install Rust Nightly and Python
  2. Install maturin in order to build Ypy
pip install maturin
  1. Create a development build of the library maturin develop

Tests

All tests are located in /tests. You can run them with pytest.

pytest

Build Ypy :

Build the library as a wheel and store them in target/wheels :

maturin build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

y_py-0.3.0.tar.gz (30.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

y_py-0.3.0-cp310-none-win_amd64.whl (451.2 kB view details)

Uploaded CPython 3.10Windows x86-64

y_py-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

y_py-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

y_py-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (576.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

y_py-0.3.0-cp39-none-win_amd64.whl (451.2 kB view details)

Uploaded CPython 3.9Windows x86-64

y_py-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

y_py-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

y_py-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (576.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

y_py-0.3.0-cp38-none-win_amd64.whl (450.7 kB view details)

Uploaded CPython 3.8Windows x86-64

y_py-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

y_py-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

y_py-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (576.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

y_py-0.3.0-cp37-none-win_amd64.whl (450.6 kB view details)

Uploaded CPython 3.7Windows x86-64

y_py-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

y_py-0.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

y_py-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl (576.5 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file y_py-0.3.0.tar.gz.

File metadata

  • Download URL: y_py-0.3.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.12

File hashes

Hashes for y_py-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0a098ba53fadc1e469e866c64ce32a5c4892f478e0f7bba12666d5cf09906529
MD5 b40db390ba79d6cec0eb2a9efa33f10d
BLAKE2b-256 3e5e7bc60d0e1ddf41993c219713ff786102eef9aab03f6444d40b893eac6edf

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp310-none-win_amd64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 451.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for y_py-0.3.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 ad28715803974b045e2117b9ce5127e0d2c169139ae7031e541e2afcb18d8a8f
MD5 e0ede9f0041c24c6cf0a45d6e517ea68
BLAKE2b-256 2a123f027fd80fda8b4b541a67563759562979842b7f106f562dfe931769a75c

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1db27c3c0ad737a1fd3a5f052254736f8d9ed74242d2a6dc6d4793a4d3e541b5
MD5 a836f2e8ad445aac60889bb03f282904
BLAKE2b-256 ec2b46bb210e5ab6c80601b0962ec306bf6efb5c5dae16eaa80a3889f1e273cb

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8d46df76e206ee2d7e9dd569718942494763e68331e6f5cae3ba53133539eb23
MD5 d8095c8088dcd0b4c0f154ea3d942ab2
BLAKE2b-256 94d0ba03fdfe003191618e8008bd6be7da69d36e01103cf8076a265304fb8bbc

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 576.5 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.63.1 CPython/2.7.18

File hashes

Hashes for y_py-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 701e3dfe1d513e54985e6d58244e589be2b59e62cb188ae25f337fb23e8cde54
MD5 ce497189c2c5e8d5735c6e23f4c06962
BLAKE2b-256 f03b8c26830f0be50bef2499fa8834d2905ca79a2300fa4ef11277cc7e13d20c

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp39-none-win_amd64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 451.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for y_py-0.3.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 059cb3e80bf508ec8f0cbeaf17e18bb1d9c268140e73f068731e19a57f0145a1
MD5 8f1be850f105e0ff8ae55a774a0393c0
BLAKE2b-256 4f2798586dbad8d49f6f28c052e1bd315869a1c21a7db64b148163ce6cbfb7ea

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b0c527aeafb4a5d9d16723090663d145f17004a242411bd1e1326a344caf1b71
MD5 856080394eb2ced7f9c15ff7f526bbc8
BLAKE2b-256 4d0205de64372ea6ac988997b17d71e1ed6ced1a32b4894d049cd27f306d592d

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c97859eb75322d955619a49c7c31e4ff5e56170bc82802901d19867cf41de488
MD5 cc65f51da74020ed3a62119e9f0b59da
BLAKE2b-256 aa37ddc138e163b469a7ef6768c494981530995834108e093add7c5f0fbb731f

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 576.5 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.63.1 CPython/2.7.18

File hashes

Hashes for y_py-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 90a12540b488cd1bcae765f46b5cbcd7376bd854f4b776381bc7a54c131e6eb6
MD5 e9b389e8edcc608ba9bbecb58e8f2cce
BLAKE2b-256 96a027b63224e56224e8d5af918695ce3e07d912ee9e8807175bc13801e1b9bd

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp38-none-win_amd64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 450.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for y_py-0.3.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 63530fe976d389c952acf43deafa6347f03c12b1735bdd36802ac32de99f5bad
MD5 4b0ea8a34e3628498af5571367d9042c
BLAKE2b-256 934e1249f8e786de973aad03e343d244dc416a64a971881f9b141f477992f7e5

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 504f62392b0796e65be52f11d3f377504a85482994fc6f3f5bbf04a9d6c9e820
MD5 7fbac07476447ec2b182bb760c1776bf
BLAKE2b-256 43ad5b4ff9206212a6737937f7ef2acf2c14db0d9730855c4aadacd432263bdd

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1e6e6aa84b299672ede53350f9dbd52dc018d414ed2c2cd02bc255d8b0b297fa
MD5 a5eff3df50ab04fb1990f183058f9df3
BLAKE2b-256 6ef071058f51c8a796ad224a24de101dd80d5ddd463fded3c34711c0d3b8cf52

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 576.5 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.63.1 CPython/2.7.18

File hashes

Hashes for y_py-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 715d21638468629434256cf9d4f38555723d2a21b0a5a2935dbfdc75f547b0dd
MD5 284392c9e897037b7903e36d60f4fc8c
BLAKE2b-256 0ebff483e78529dfa10985048bf8107f0c975e4a210b285af3924e1adec79c42

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp37-none-win_amd64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp37-none-win_amd64.whl
  • Upload date:
  • Size: 450.6 kB
  • Tags: CPython 3.7, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for y_py-0.3.0-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 e83e71a44f3698e9ce3f4a399a0d5f35ba138fa672cf9ddeb268b5d79a2b04c7
MD5 c7c72966329b376a82cd6bd7a98c8690
BLAKE2b-256 8dbf442e4f34a66af9e61f69a5f00e6b22f4480678b9227951d7a29ddf41049a

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5511bb1d2ca497c47d11be8048ef1efa9aa3ab64044c408f98d8f76362e10c5
MD5 271e82c77221d5b86f43601e5eb7ea30
BLAKE2b-256 bf6c1925781ee10d465f76f106999687adbdd43258dd67083bf5f4e1a8001cc4

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for y_py-0.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 75b137ca47c096e4dff73f0b39908d81510ea7408a9d5f9a50433782bfcd398b
MD5 81026458bbfcaabc3edf0e0ecc6ace23
BLAKE2b-256 4de4dbb0d255358dcd7b2c7d018ede52753fe52bfec898116fed6eb8c56fa35d

See more details on using hashes here.

File details

Details for the file y_py-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: y_py-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 576.5 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.63.1 CPython/2.7.18

File hashes

Hashes for y_py-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f15570435225c384a2d58ace107d66f84846ed7e563d22db489ec0f5584be6d6
MD5 5a27a4eb15a345567ed8d3a4ef30f8d3
BLAKE2b-256 b3081c615c8a8c2b233618e9389e65746ea49fe32d481b2eeefed020c6df063c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page