1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-07 21:47:02 +09:00
An open-source protocol designed to create high-performance, local-first, peer-to-peer, end-to-end encrypted applications that facilitate seamless collaboration among multiple users and devices https://anytype.io/
Find a file
2023-09-14 17:00:11 +03:00
.githooks GO-1732 Add commit hooks and test coverage report 2023-08-01 17:54:16 +02:00
.github .github/workflows/coverage.yml updated golang version and refactoring 2023-09-11 15:23:45 +00:00
accountservice switch to uber/gomock 2023-07-10 15:41:22 +02:00
app switch to uber/gomock 2023-07-10 15:41:22 +02:00
commonfile GO-1809 Fix interfaces clash 2023-08-08 19:18:28 +02:00
commonspace Merge pull request #78 from anyproto/GO-1918-any-sync-deletion-updates 2023-08-23 17:12:36 +02:00
consensus Update mocks 2023-08-23 13:03:03 +02:00
coordinator Fix marshal payload 2023-09-01 13:23:25 +02:00
deps build deps locally 2023-01-11 14:15:20 +03:00
identityrepo/identityrepoproto identityrepoproto: dataPull change proto 2023-08-07 19:53:14 +02:00
metric validate rpc method name 2023-06-14 11:55:59 +02:00
net quic.ListenAddrs returns addrs 2023-08-23 16:38:46 +02:00
nodeconf switch to uber/gomock 2023-07-10 15:41:22 +02:00
testutil fix imports 2023-05-23 14:47:24 +02:00
util Change periodic sync init 2023-08-08 11:13:15 +02:00
.gitignore make common module as any-sync repo 2023-01-05 15:34:09 +03:00
.pre-commit-config.yaml GO-1732 Add commit hooks and test coverage report 2023-08-01 17:54:16 +02:00
go.mod Merge pull request #90 from anyproto/dependabot/go_modules/github.com/libp2p/go-libp2p-0.31.0 2023-09-12 17:55:50 +02:00
go.sum Merge pull request #90 from anyproto/dependabot/go_modules/github.com/libp2p/go-libp2p-0.31.0 2023-09-12 17:55:50 +02:00
LICENSE.md Mention consensus node (#71) 2023-09-14 17:00:11 +03:00
Makefile Merge branch 'main' of github.com:anyproto/any-sync into GO-1737-any-id-repository 2023-08-03 14:17:43 +02:00
README.md Mention consensus node (#71) 2023-09-14 17:00:11 +03:00

Any-Sync

Any-Sync is an open-source protocol designed to create high-performance, local-first, peer-to-peer, end-to-end encrypted applications that facilitate seamless collaboration among multiple users and devices.

By utilizing this protocol, users can rest assured that they retain complete control over their data and digital experience. They are empowered to freely transition between various service providers, or even opt to self-host the applications.

This ensures utmost flexibility and autonomy for users in managing their personal information and digital interactions.

Introduction

Most existing information management tools are implemented on centralized client-server architecture or designed for an offline-first single-user usage. Either way there are trade-offs for users: they can face restricted freedoms and privacy violations or compromise on the functionality of tools to avoid this.

We believe this goes against fundamental digital freedoms and that a new generation of software is needed that will respect these freedoms, while providing best in-class user experience.

Our goal with any-sync is to develop a protocol that will enable the deployment of this software.

Features:

  • Conflict-free data replication across multiple devices and agents
  • Built-in end-to-end encryption
  • Cryptographically verifiable history of changes
  • Adoption to frequent operations (high performance)
  • Reliable and scalable infrastructure
  • Simultaneous support of p2p and remote communication

Protocol explanation

Plese read the overview of protocol entities and design.

Implementation

You can find the various parts of the protocol implemented in Go in the following repositories:

  • any-sync-node — implementation of a sync node responsible for storing spaces and objects.
  • any-sync-filenode — implementation of a file node responsible for storing files.
  • any-sync-consensusnode — implementation of a consensus node responsible for ACL changes monitoring and validation.
  • any-sync-coordinator — implementation of a coordinator node responsible for network configuration management.

Contribution

Thank you for your desire to develop Anytype together!

❤️ This project and everyone involved in it is governed by the Code of Conduct.

🧑‍💻 Check out our contributing guide to learn about asking questions, creating issues, or submitting pull requests.

🫢 For security findings, please email security@anytype.io and refer to our security guide for more information.

🤝 Follow us on Github and join the Contributors Community.


Made by Any — a Swiss association 🇨🇭

Licensed under MIT License.