Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add more compatibility test baseline using yjs #1

Open
darkskygit opened this issue Aug 18, 2023 · 1 comment
Open

add more compatibility test baseline using yjs #1

darkskygit opened this issue Aug 18, 2023 · 1 comment
Assignees

Comments

@darkskygit
Copy link
Collaborator

darkskygit commented Aug 18, 2023

Currently we still use yrs as a baseline for binary compatible behavior, which increases testing complexity

I consider introducing a js runtime to provide the execution results of yjs as a reference benchmark during testing

It may be a convenient choice to directly use node to execute and output to stdio. Another option is to introduce quickjs or a similar streamlined js runtime, but this will increase compilation time and dependency complexity.

I will first investigate the feasibility of using nodejs to obtain execution results. This is the easiest way

### Tasks
- [x] https://github.com/toeverything/y-octo/pull/4
- [x] impl the function binding of node: #6
- [ ] test case for verify the data between yjs and y-octo-node #6
@darkskygit darkskygit self-assigned this Aug 18, 2023
@darkskygit
Copy link
Collaborator Author

Consider using napi-rs to generate node bindings and write compatibility tests in nodejs. This approach has three advantages:

  • We can offer node bindings for node.js user that they can has another choose in server side about crdt
  • Directly using node bindings to test compatibility allows us to reuse yjs's test cases without extra result processing steps (like figuring out how to transfer yjs results to rust).
  • One of the maintainers of napi-rs is a member of our team, making it easier to troubleshoot issues when they arise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant