Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
7bdf941
fix comment
tonny008 Jul 31, 2023
171d801
docs(readme): fix typo
jsejcksn Oct 5, 2023
e6afc51
add documentation on V2 events
nikgraf Oct 7, 2023
e7572d6
Only emit "load" when sync is set to true
SamyPesse Oct 22, 2023
25bef23
Fix typing of `Y.Map` iterators
haines Oct 25, 2023
f52569b
fix: remove unused if-statement check
himself65 Oct 31, 2023
c14a8d7
Merge pull request #593 from himself65/remove-unused-check
dmonad Nov 2, 2023
e5f286c
feat: expose some types
himself65 Nov 6, 2023
a3d69bb
Adding www.btw.so to the platforms who use Yjs
siddug Nov 7, 2023
da8ca51
Merge pull request #596 from siddug/patch-1
dmonad Nov 11, 2023
ac49dbc
Merge pull request #583 from nikgraf/improve-docs
dmonad Nov 14, 2023
b531438
Merge pull request #595 from himself65/expose-content-doc
dmonad Nov 20, 2023
61e84c5
Merge pull request #579 from jsejcksn/fix/docs/readme
dmonad Nov 20, 2023
b32f543
Merge pull request #557 from tonny008/patch-1
dmonad Nov 20, 2023
37236fa
update license. closes #471
dmonad Nov 20, 2023
5861876
Merge pull request #587 from SamyPesse/patch-1
dmonad Nov 20, 2023
9f8c558
update github workflow
dmonad Nov 20, 2023
289ff16
Merge pull request #590 from haines/map-iterator-types
dmonad Nov 20, 2023
c2e7076
add iterator type checks
dmonad Nov 20, 2023
013b2b6
13.6.9
dmonad Nov 20, 2023
2c0daeb
implement snapshot API for yxml.getAttributes. implements #543
dmonad Nov 21, 2023
1d4f2e5
13.6.10
dmonad Nov 21, 2023
28ccd5e
add providers (also mention some y-crdt based providers)
dmonad Nov 21, 2023
fe36ffd
add AWS Sagemaker, JupyterLab, JupyterCAD as users
dmonad Nov 28, 2023
221cb81
add screen.garden as user
kevboh Nov 30, 2023
77bd741
Update who-is-using (Cargo.site)
dmonad Dec 11, 2023
cf78ce1
Updated readme.md with Professional Support section
lukasz-jazwa Dec 14, 2023
0241fd3
Update README.md with mobx-keystone binding
xaviergonz Dec 23, 2023
79c095d
Merge pull request #605 from xaviergonz/patch-1
dmonad Dec 28, 2023
e348255
Merge pull request #604 from lukasz-jazwa/proffesional-support-section
dmonad Jan 10, 2024
7a8ca6e
add linear as a user of Yjs
dmonad Jan 15, 2024
1cb52dc
fix Y.Text formatting issue - closes #606
dmonad Jan 21, 2024
415a645
13.6.11
dmonad Jan 21, 2024
16d9638
Add ydoc.getXmlElement
raineorshine Feb 5, 2024
e1bce03
better typings for ydoc.get
dmonad Feb 9, 2024
ce06b2a
update deps
dmonad Feb 9, 2024
f54ea62
Merge branch 'raineorshine-getXmlElement'
dmonad Feb 9, 2024
a858244
13.6.12
dmonad Feb 9, 2024
009f6ab
docs: fix typo
MentalGear Feb 17, 2024
90a90ab
add y-fire to provider list #189
dmonad Feb 20, 2024
a9dc72f
Merge pull request #612 from MentalGear/patch-1
dmonad Feb 25, 2024
917261a
Facilitate referencing UndoManager StackItem inside Type observers
mylesj Feb 28, 2024
29fa60c
[Undo] add UndoManager.currStackItem
dmonad Feb 29, 2024
53173a9
Merge branch 'mylesj-feat/undomanager-doingstackitem'
dmonad Feb 29, 2024
541306b
migrate to ObservableV2
dmonad Feb 29, 2024
90675be
13.6.13
dmonad Feb 29, 2024
cdbb558
Allow falsy attribute values
jul13579 Mar 1, 2024
83db6c8
Merge pull request #619 from jul13579/allow-falsy-attribute-values
dmonad Mar 1, 2024
133cfc9
allow falsy values in formatting attributes
dmonad Mar 1, 2024
1e69d65
13.6.14
dmonad Mar 1, 2024
6beab79
add tests for falsy formatting attributes - #619
dmonad Mar 1, 2024
b235c57
add tinybase
dmonad Mar 12, 2024
2fba694
Add documentation & clarification to clone method #622
dmonad Mar 14, 2024
6e674ff
add y-webxdc - related to yjs/docs#55
dmonad Mar 14, 2024
2062f52
add reference to y-redis
dmonad Mar 15, 2024
dc45a8d
[readme] Added AppMaster to "Who is Using"
dmonad Mar 23, 2024
ca24f1e
added more sponsors
dmonad Mar 23, 2024
d730abe
add synthesia as a user
dmonad Mar 24, 2024
d119459
add huly as a user
dmonad Apr 3, 2024
52b9068
Update Readme who-is-using (thinkdeli.com)
satyajeetjadhav Apr 9, 2024
01c3668
Merge pull request #626 from satyajeetjadhav/main
dmonad Apr 9, 2024
43e1780
fix: update search marker count in INTERNALS.md
synix Apr 11, 2024
b990ad9
Merge pull request #627 from synix/fix/INTERNALS
dmonad Apr 12, 2024
f5aa852
remove outdated Y instance in comments
synix Apr 13, 2024
aee9e14
Merge pull request #629 from synix/fix/outdated-y-instance
dmonad Apr 13, 2024
f153277
fix typo
sakihet Apr 15, 2024
05d974c
Merge pull request #630 from sakihet/fix-typo
dmonad Apr 15, 2024
4ffd23f
typo
dmonad Apr 17, 2024
5e712e3
add ourboard as user
dmonad Apr 24, 2024
25ae9f3
remove unused _transaction in YArray
synix Apr 25, 2024
f0dc53f
fix minor typos
synix Apr 25, 2024
43815d8
fix lint error
synix Apr 25, 2024
8270373
Add Hocuspocus as a backend provider
fxsalazar Apr 25, 2024
927c236
Merge pull request #636 from fxsalazar/patch-1
dmonad Apr 25, 2024
387be70
make slice() function's doc more accurate
synix Apr 26, 2024
3df335c
update slice() function's doc
synix Apr 26, 2024
0af69cf
fix: markdownlint readme error
synix Apr 26, 2024
ce43124
[relative-positions] add option to configure whether to follow redon …
dmonad Apr 26, 2024
d56221b
Merge pull request #637 from synix/fix/readme-lint
dmonad Apr 26, 2024
91b718c
13.6.15
dmonad Apr 26, 2024
0511b66
Merge pull request #635 from synix/fix/unused-transaction
dmonad Apr 28, 2024
656b7e7
add more users
dmonad Apr 28, 2024
0896ed4
Merge branch 'main' into patch-1
dmonad Apr 28, 2024
13772bf
Merge pull request #603 from kevboh/patch-1
dmonad Apr 28, 2024
54594a2
Add y-op-sqlite to readme
malte-j Apr 30, 2024
06e71f6
Fix y-websocket server path
jasonbw May 9, 2024
cdd8e4f
Merge pull request #643 from jasonbw/patch-1
dmonad May 9, 2024
c264b1c
Merge pull request #640 from malte-j/patch-1
dmonad May 11, 2024
edad668
Update INTERNALS.md
i12345 May 15, 2024
72205a6
Merge pull request #644 from i12345/patch-1
dmonad May 15, 2024
d67a951
add y-postgresql info to readme
MaxNoetzold May 21, 2024
03593ae
fix linting errors
MaxNoetzold May 21, 2024
a4303f9
Merge pull request #646 from MaxNoetzold/patch-1
dmonad Jun 4, 2024
6932696
Export mergeDeleteSets
fuadsaud Jun 6, 2024
0973e0a
Merge pull request #648 from ellipsus-writes/export-merge-ds
dmonad Jun 7, 2024
0678ed1
fix event.path in observeDeep - closes #457
dmonad Jun 10, 2024
fbd088e
13.6.16
dmonad Jun 10, 2024
88506f6
Fixed star icon in README.md
szv Jun 11, 2024
2e79d03
Fixed markdown link for ellipsus.org in README.md
szv Jun 11, 2024
a47a48b
Merge pull request #649 from szv/readme-fixes
dmonad Jun 15, 2024
d4dac55
fix creating relative position from json when type name is the empty …
dmonad Jun 17, 2024
34b06b6
13.6.17
dmonad Jun 17, 2024
3f1746f
add lexical editor
dmonad Jun 17, 2024
2e5abad
fix #645 yjs/y-utility#8
dmonad Jun 18, 2024
1bfa6df
13.6.18
dmonad Jun 18, 2024
5e19c35
add react-yjs to bindings
nikgraf Jun 24, 2024
384ec4d
Merge pull request #651 from nikgraf/patch-2
dmonad Jun 30, 2024
f29cd2b
update users
dmonad Jul 10, 2024
c944a45
Add Y.Array.from() and yarray.clone() to API docs
mtreinik Jul 30, 2024
294c6a1
Remove erroneous ymap.get(index:number) from API docs
mtreinik Jul 30, 2024
56d5e32
Merge pull request #660 from mtreinik/main
dmonad Jul 30, 2024
eeb4c99
lint readme
dmonad Aug 5, 2024
dd17228
update markdownlint
dmonad Aug 6, 2024
44e5108
fix new lint issues
dmonad Aug 6, 2024
5b4d2a6
Add QDAcity to `README.md`
jul13579 Aug 29, 2024
3f9bfe4
Merge pull request #664 from jul13579/add-qdacity-to-readme
dmonad Aug 29, 2024
f2ff8b9
add kanbert as a user
dmonad Aug 30, 2024
95e2bc4
add secsync
dmonad Sep 2, 2024
7422b18
add eclipse theia as a user
dmonad Sep 3, 2024
c1ef9a1
add ScienHub as a user.
batchor Sep 5, 2024
4fb7789
add ScienHub as a user.
batchor Sep 5, 2024
f604250
add `ydoc.isDestroyed` property
dmonad Sep 10, 2024
9a993f8
13.6.19
dmonad Sep 10, 2024
9e9f294
Merge pull request #665 from batchor/main
dmonad Sep 19, 2024
8cd1a48
Y.Array.length should be 0 before it is integrated - #666
dmonad Sep 26, 2024
3bf44b9
#667 - add sanity messages when data is read before type is added to …
dmonad Oct 4, 2024
8152cf8
[#667] sanity checks for Yjs caveats. In dev_mode, objects inserted i…
dmonad Oct 4, 2024
4ff65b5
add devtools
dmonad Oct 7, 2024
345fd31
add yjs-inspector
dmonad Oct 7, 2024
487465d
lint
dmonad Oct 13, 2024
a304024
13.6.20
dmonad Oct 13, 2024
e804dd7
add y-crdt elexir bindings
dmonad Sep 4, 2024
cc2d732
add funding.json
dmonad Oct 19, 2024
42bbb44
fix errors in funding.json
dmonad Oct 19, 2024
6074f80
[funding.json] fix some validation issues
dmonad Oct 19, 2024
4f47355
add SuperViz Provider in yjs README
carlossantos74 Oct 22, 2024
2b7ea8a
Merge pull request #671 from carlossantos74/main
dmonad Oct 24, 2024
4329997
add stars to providers that sponsor yjs
dmonad Oct 24, 2024
8dc1296
update readme
dmonad Oct 24, 2024
4e2d3c8
docs: remove `@toeverything/y-indexeddb`
himself65 Nov 27, 2024
c951f2b
add Open Collaboration Tools as a user
dmonad Nov 28, 2024
0419b74
Merge pull request #676 from himself65/patch-1
dmonad Dec 4, 2024
4ffd370
Add PSPDFKit binding to README.md
hoangqwe159 Dec 5, 2024
d4d4ae5
Merge pull request #679 from hoangqwe159/main
dmonad Dec 14, 2024
4404d09
add nodejs specific tests
dmonad Dec 18, 2024
1b0f2e5
lint
dmonad Dec 18, 2024
f583d2a
fix #657 - relative positions issue when using followUndoneDeletions=…
dmonad Dec 20, 2024
89dddc2
13.6.21
dmonad Dec 20, 2024
f18eab2
Fix typos
szepeviktor Jan 3, 2025
1a0d4aa
Merge pull request #685 from szepeviktor/typos
dmonad Jan 7, 2025
e67b129
fix(yText): applyDelta should support both Delta and Ops[]
ykou-clickup Jan 9, 2025
3c9c0f1
Merge pull request #689 from ykou-clickup/patch-1
dmonad Jan 12, 2025
80e83a8
Revert "fix(yText): applyDelta should support both Delta and Ops[]"
dmonad Jan 12, 2025
2d2e662
Merge pull request #690 from yjs/revert-689-patch-1
dmonad Jan 12, 2025
bb5410b
marginally better typings for applyDelta - #689
dmonad Jan 12, 2025
1bec008
13.6.22
dmonad Jan 12, 2025
e53c44e
expose getItemCleanStart/End
dmonad Jan 15, 2025
c05b815
13.6.23
dmonad Jan 15, 2025
40725e3
Add Typst to Yjs users in README
reknih Jan 17, 2025
4b86576
Merge pull request #691 from reknih/add-typst
dmonad Jan 17, 2025
cc9a857
slightly optimize TreeWalker and integration process
dmonad Feb 24, 2025
69d4a5c
[UndoManager] support global undo
dmonad Mar 4, 2025
78e0527
13.6.24
dmonad Mar 4, 2025
09fbb62
improve documentation on global UndoManager
dmonad Mar 4, 2025
afa4c35
update titanic funding information - closes #696
dmonad Mar 5, 2025
e3739bc
test example for rejecting updates
dmonad Mar 5, 2025
35c030d
improve reject update example
dmonad Mar 6, 2025
3ecfb4e
add rowsncolumns
dmonad Mar 9, 2025
06cd5b5
README: Remove a duplicate SageMaker mention
hacklschorsch Mar 18, 2025
2ef9ccd
README: Remove duplicate btw mention
hacklschorsch Mar 18, 2025
ad0d915
Merge pull request #701 from hacklschorsch/patch-2
dmonad Mar 18, 2025
d5b5e7a
Update README.md to add https://github.com/kapv89/k_yrs_go to persist…
kapv89 Mar 25, 2025
34b9343
Merge pull request #702 from kapv89/patch-1
dmonad Mar 26, 2025
1b006dc
Update README.md
manstie Mar 31, 2025
0e31957
Merge pull request #703 from manstie/patch-2
dmonad Mar 31, 2025
66989ca
feat: add ace bindings
bajrangCoder Apr 1, 2025
a57f53e
Merge pull request #704 from bajrangCoder/ace-bindings
dmonad Apr 1, 2025
e17616c
Merge branch 'main' into patch-1
dmonad Apr 1, 2025
5200598
Merge pull request #700 from hacklschorsch/patch-1
dmonad Apr 1, 2025
f1f96e1
lint
dmonad Apr 1, 2025
2b621eb
add JupyterGIS
dmonad Apr 1, 2025
4d67167
add yrs-warp to providers
dmonad Apr 2, 2025
b9aa098
add y-op-sqlite
dmonad Apr 7, 2025
c2097e7
fix iterating through deleted structs when they dont exist
dmonad Apr 18, 2025
e866222
lint
dmonad Apr 18, 2025
0ae8d6c
13.6.25
dmonad Apr 18, 2025
13cd563
[iterateStructs] additional check for non-existent structs
dmonad Apr 18, 2025
2f4b8c3
13.6.26
dmonad Apr 18, 2025
2fbc73e
Update README.md
Yeshan-K Apr 22, 2025
120856d
Update README.md
Yeshan-K Apr 22, 2025
6b7e65d
Merge pull request #708 from Yeshan-K/main
dmonad Apr 22, 2025
5037831
add funding manifest to .well-known
dmonad Apr 27, 2025
780b27b
update funding manifest
dmonad Apr 27, 2025
29ab38c
add y-crdt
dmonad Apr 27, 2025
120d611
better description of myself
dmonad Apr 27, 2025
2f33d16
lint
dmonad Apr 27, 2025
bd645c4
remove y-crdt (separate funding.json is maintained in y-crdt org)
dmonad Apr 30, 2025
7dad24d
support bigints in Y.Map.set - fixes #711
dmonad May 13, 2025
987c9eb
13.6.27
dmonad May 13, 2025
bb80aec
Merge tag 'v13.6.27' into fork-sync
max1287 Jul 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ jobs:

strategy:
matrix:
node-version: [16.x, 18.x]
node-version: [16.x, 20.x]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run lint
- run: npm run test-extensive
- run: npm run test
env:
CI: true
1 change: 1 addition & 0 deletions .well-known/funding-manifest-urls
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://yjs.dev
6 changes: 3 additions & 3 deletions INTERNALS.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ article](https://blog.kevinjahns.de/are-crdts-suitable-for-shared-editing/).

Each client is assigned a unique *clientID* property on first insert. This is a
random 53-bit integer (53 bits because that fits in the javascript safe integer
range).
range \[JavaScript uses IEEE 754 floats\]).

## List items

Expand Down Expand Up @@ -60,7 +60,7 @@ characters have either been deleted or all characters are not deleted. The item
will be split if the run is interrupted for any reason (eg a character in the
middle of the run is deleted).

When an item is created, it stores a reference to the IDs of the preceeding and
When an item is created, it stores a reference to the IDs of the preceding and
succeeding item. These are stored in the item's `origin` and `originRight`
fields, respectively. These are used when peers concurrently insert at the same
location in a document. Though quite rare in practice, Yjs needs to make sure
Expand Down Expand Up @@ -88,7 +88,7 @@ When a local insert happens, Yjs needs to map the insert position in the
document (eg position 1000) to an ID. With just the linked list, this would
require a slow O(n) linear scan of the list. But when editing a document, most
inserts are either at the same position as the last insert, or nearby. To
improve performance, Yjs stores a cache of the 10 most recently looked up
improve performance, Yjs stores a cache of the 80 most recently looked up
insert positions in the document. This is consulted and updated when a position
is looked up to improve performance in the average case. The cache is updated
using a heuristic that is still changing (currently, it is updated when a new
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
The MIT License (MIT)

Copyright (c) 2014
- Kevin Jahns <kevin.jahns@rwth-aachen.de>.
Copyright (c) 2023
- Kevin Jahns <kevin.jahns@protonmail.com>.
- Chair of Computer Science 5 (Databases & Information Systems), RWTH Aachen University, Germany

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
295 changes: 239 additions & 56 deletions README.md

Large diffs are not rendered by default.

148 changes: 148 additions & 0 deletions funding.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{
"version": "v1.0.0",
"entity": {
"type": "group",
"role": "steward",
"name": "Kevin Jahns",
"email": "kevin.jahns@protonmail.com",
"phone": "",
"description": "Independent OSS Developer maintaining Yjs and many related libraries. My goal is to make the web more (real-time) collaborative.",
"webpageUrl": {
"url": "https://yjs.dev",
"wellKnown": "https://yjs.dev/.well-known/funding-manifest-urls"
}
},
"projects": [
{
"guid": "yjs",
"name": "Yjs",
"description": "A library for building collaborative applications. #p2p #local-first #CRDT Funding this project will also enable me to maintain the other Yjs-related technologies.",
"webpageUrl": {
"url": "https://yjs.dev",
"wellKnown": "https://yjs.dev/.well-known/funding-manifest-urls"
},
"repositoryUrl": {
"url": "https://github.com/yjs/yjs"
},
"licenses": [
"spdx:MIT"
],
"tags": [
"collaboration",
"p2p",
"CRDT",
"rich-text",
"real-time"
]
},
{
"guid": "titanic",
"name": "Titanic",
"description": "A provider for syncing millions of docs efficiently with other peers. This will become the foundation for building real local-first apps with Yjs.",
"webpageUrl": {
"url": "https://github.com/yjs/titanic",
"wellKnown": "https://github.com/yjs/titanic/blob/main/.well-known/funding-manifest-urls"
},
"repositoryUrl": {
"url": "https://github.com/yjs/titanic",
"wellKnown": "https://github.com/yjs/titanic/blob/main/.well-known/funding-manifest-urls"
},
"licenses": [
"spdx:MIT"
],
"tags": [
"privacy",
"collaboration",
"p2p",
"CRDT",
"rich-text",
"real-time",
"web-development"
]
}
],
"funding": {
"channels": [
{
"guid": "github-sponsors",
"type": "payment-provider",
"address": "https://github.com/sponsors/dmonad",
"description": "For funding of the Yjs project"
},
{
"guid": "yjs-opencollective",
"type": "payment-provider",
"address": "https://opencollective.com/y-collective/projects/yjs",
"description": "For funding Yjs via the OpenCollective."
}
],
"plans": [
{
"guid": "supporter",
"status": "active",
"name": "Supporter",
"description": "",
"amount": 0,
"currency": "USD",
"frequency": "monthly",
"channels": [
"github-sponsors",
"yjs-opencollective"
]
},
{
"guid": "titanic-funding",
"status": "active",
"name": "Titanic Funding",
"description": "Fund the next generation of local-first providers.",
"amount": 30000,
"currency": "USD",
"frequency": "one-time",
"channels": [
"github-sponsors",
"yjs-opencollective"
]
},
{
"guid": "bronze-sponsor",
"status": "active",
"name": "Bronze Sponsor",
"description": "This is the recommended plan for companies that use Yjs.",
"amount": 500,
"currency": "USD",
"frequency": "monthly",
"channels": [
"github-sponsors",
"yjs-opencollective"
]
},
{
"guid": "silver-sponsor",
"status": "active",
"name": "Silver Sponsor",
"description": "This is the recommended plan for large/successfull companies that use Yjs.",
"amount": 1000,
"currency": "USD",
"frequency": "monthly",
"channels": [
"github-sponsors",
"yjs-opencollective"
]
},
{
"guid": "gold-sponsor",
"status": "active",
"name": "Gold Sponsor",
"description": "This is the recommended plan for successful companies that build their entire product around Yjs-related technologies.",
"amount": 3000,
"currency": "USD",
"frequency": "monthly",
"channels": [
"github-sponsors",
"yjs-opencollective"
]
}
],
"history": null
}
}
Loading