any-sync

module
v0.10.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2025 License: MIT

README

any-sync

any-sync is an open-source protocol designed for the post-cloud era, enabling high-speed, peer-to-peer synchronization of encrypted communication channels (spaces). It provides a communication layer for building private, decentralized applications offering unparalleled control, privacy, and performance.

Core Principles

Each any-sync space (communication channel) is:

  • End-to-end encrypted: Ensuring complete privacy of all messages and data.
  • User-owned: Users maintain full control over their data and connections.
  • Permissionless: Free from centralized lock-in, enabling true decentralization.

Thanks to its local-first design, any-sync achieves better-than-cloud performance when peers are physically close while maintaining global accessibility. At its core, data in any-sync is stored as encrypted Directed Acyclic Graphs (DAGs), representing various formats such as chats, pages, or databases. Its end-to-end encrypted structure ensures that no external entity can view a channel's content.

Use Cases

any-sync enables developers to build private, decentralized alternatives to apps like Telegram, Discord, Notion, or even health-focused tools like Strava and Oura—without centralized infrastructure.

Paired with any-store, it provides a local-first foundation for intelligent apps, including those using LLMs. Developers work with a local object store, while sync, communication, and scaling are handled seamlessly by the protocol—offering privacy, offline support, and strong performance with minimal complexity.

Key Features

  • Encrypted, user-owned channels: Maintain control over communication and data.
  • Permissionless operation: No strict reliance on centralized services.
  • Local-first sync: Functions offline and over peer-to-peer connections.
  • Seamless provider switching: Retain access to channels even when changing sync providers.
  • Speed and security: Combines fast performance with robust security.
  • Scalable infrastructure: Efficiently supports large-scale collaboration, including large groups.

Motivation

Traditional cloud infrastructures give corporations control over servers, causing entire communities to lose their connections and data if servers fail, get hacked, or block users. any-sync aims to bring the same degree of freedom to communication that blockchains brought to finance.

While blockchains excel at global consensus tasks like identity management, access control, or payments, they're not suited for real-time, end-to-end encrypted communication. Storing every encrypted message or document change on every node would be impractical. any-sync fills this gap by adding a fast, flexible communication layer that, paired with a decentralized, strictly ordered list, enables permissionless and zero-knowledge communication at scale.

Operational Benefits

With any-sync:

  • Users can choose and switch providers anytime without losing access or data.
  • Providers cannot read user information, block users, or alter accounts—they only deliver sync and storage.

any-sync channels can scale without practical limits thanks to a Conflict-free Replicated Data Type (CRDT)-based, gas-less mechanism cryptographically signing every change in its DAGs. Each device independently applies and cryptographically verifies CRDT updates, ensuring consistent final states without traditional consensus protocols.

By supporting multiple data formats (chats, pages, databases) and storing files externally (e.g., via IPFS), any-sync provides a flexible foundation for secure, decentralized communication.

Protocol overview

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.


Made by Any — a Swiss association 🇨🇭

Licensed under MIT License.

Directories

Path Synopsis
mock_accountservice
Package mock_accountservice is a generated GoMock package.
Package mock_accountservice is a generated GoMock package.
acl
mock_acl
Package mock_acl is a generated GoMock package.
Package mock_acl is a generated GoMock package.
app
debugstat/mock_debugstat
Package mock_debugstat is a generated GoMock package.
Package mock_debugstat is a generated GoMock package.
ldiff
Package ldiff provides a container of elements with fixed id and changeable content.
Package ldiff provides a container of elements with fixed id and changeable content.
ldiff/mock_ldiff
Package mock_ldiff is a generated GoMock package.
Package mock_ldiff is a generated GoMock package.
commonfile
acl/aclclient/mock_aclclient
Package mock_aclclient is a generated GoMock package.
Package mock_aclclient is a generated GoMock package.
credentialprovider/mock_credentialprovider
Package mock_credentialprovider is a generated GoMock package.
Package mock_credentialprovider is a generated GoMock package.
deletionmanager/mock_deletionmanager
Package mock_deletionmanager is a generated GoMock package.
Package mock_deletionmanager is a generated GoMock package.
deletionstate/mock_deletionstate
Package mock_deletionstate is a generated GoMock package.
Package mock_deletionstate is a generated GoMock package.
headsync/headstorage/mock_headstorage
Package mock_headstorage is a generated GoMock package.
Package mock_headstorage is a generated GoMock package.
headsync/mock_headsync
Package mock_headsync is a generated GoMock package.
Package mock_headsync is a generated GoMock package.
headsync/statestorage/mock_statestorage
Package mock_statestorage is a generated GoMock package.
Package mock_statestorage is a generated GoMock package.
mock_commonspace
Package mock_commonspace is a generated GoMock package.
Package mock_commonspace is a generated GoMock package.
object/acl/list/mock_list
Package mock_list is a generated GoMock package.
Package mock_list is a generated GoMock package.
object/acl/syncacl/mock_syncacl
Package mock_syncacl is a generated GoMock package.
Package mock_syncacl is a generated GoMock package.
object/keyvalue/keyvaluestorage/mock_keyvaluestorage
Package mock_keyvaluestorage is a generated GoMock package.
Package mock_keyvaluestorage is a generated GoMock package.
object/keyvalue/kvinterfaces/mock_kvinterfaces
Package mock_kvinterfaces is a generated GoMock package.
Package mock_kvinterfaces is a generated GoMock package.
object/tree/objecttree/mock_objecttree
Package mock_objecttree is a generated GoMock package.
Package mock_objecttree is a generated GoMock package.
object/tree/synctree/mock_synctree
Package mock_synctree is a generated GoMock package.
Package mock_synctree is a generated GoMock package.
object/tree/synctree/response/mock_response
Package mock_response is a generated GoMock package.
Package mock_response is a generated GoMock package.
object/tree/synctree/updatelistener/mock_updatelistener
Package mock_updatelistener is a generated GoMock package.
Package mock_updatelistener is a generated GoMock package.
object/treemanager/mock_treemanager
Package mock_treemanager is a generated GoMock package.
Package mock_treemanager is a generated GoMock package.
object/treesyncer/mock_treesyncer
Package mock_treesyncer is a generated GoMock package.
Package mock_treesyncer is a generated GoMock package.
objectmanager/mock_objectmanager
Package mock_objectmanager is a generated GoMock package.
Package mock_objectmanager is a generated GoMock package.
objecttreebuilder/mock_objecttreebuilder
Package mock_objecttreebuilder is a generated GoMock package.
Package mock_objecttreebuilder is a generated GoMock package.
peermanager/mock_peermanager
Package mock_peermanager is a generated GoMock package.
Package mock_peermanager is a generated GoMock package.
settings/settingsstate/mock_settingsstate
Package mock_settingsstate is a generated GoMock package.
Package mock_settingsstate is a generated GoMock package.
spacestorage/mock_spacestorage
Package mock_spacestorage is a generated GoMock package.
Package mock_spacestorage is a generated GoMock package.
spacesyncproto/mock_spacesyncproto
Package mock_spacesyncproto is a generated GoMock package.
Package mock_spacesyncproto is a generated GoMock package.
sync/syncdeps/mock_syncdeps
Package mock_syncdeps is a generated GoMock package.
Package mock_syncdeps is a generated GoMock package.
syncstatus/mock_syncstatus
Package mock_syncstatus is a generated GoMock package.
Package mock_syncstatus is a generated GoMock package.
consensus
consensusclient/mock_consensusclient
Package mock_consensusclient is a generated GoMock package.
Package mock_consensusclient is a generated GoMock package.
coordinator
coordinatorclient/mock_coordinatorclient
Package mock_coordinatorclient is a generated GoMock package.
Package mock_coordinatorclient is a generated GoMock package.
identityrepo
Package mock_spacestorage is a generated GoMock package.
Package mock_spacestorage is a generated GoMock package.
nameservice
nameserviceclient/mock
Package mock_nameserviceclient is a generated GoMock package.
Package mock_nameserviceclient is a generated GoMock package.
net
peer/mock_peer
Package mock_peer is a generated GoMock package.
Package mock_peer is a generated GoMock package.
pool/mock_pool
Package mock_pool is a generated GoMock package.
Package mock_pool is a generated GoMock package.
rpc
rpc/limiter/mock_limiter
Package mock_limiter is a generated GoMock package.
Package mock_limiter is a generated GoMock package.
transport/mock_transport
Package mock_transport is a generated GoMock package.
Package mock_transport is a generated GoMock package.
transport/quic/mock_quic
Package mock_quic is a generated GoMock package.
Package mock_quic is a generated GoMock package.
node
nodeclient/mock_nodeclient
Package mock_nodeclient is a generated GoMock package.
Package mock_nodeclient is a generated GoMock package.
mock_nodeconf
Package mock_nodeconf is a generated GoMock package.
Package mock_nodeconf is a generated GoMock package.
paymentservice
paymentserviceclient/mock
Package mock_paymentserviceclient is a generated GoMock package.
Package mock_paymentserviceclient is a generated GoMock package.
testutil
util
crc16
Package crc16 is implementation according to CCITT standards.
Package crc16 is implementation according to CCITT standards.
periodicsync/mock_periodicsync
Package mock_periodicsync is a generated GoMock package.
Package mock_periodicsync is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL