arcuru/eidetica
arcuru/eidetica has 120 GitHub stars and 7 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-12 12:58 UTC. Last push 2026-11-11.
Decentralized DB. Remember Everything. Everywhere. All At Once.
측정된 스타 증가
- in 24h
- 0
- in 7 days
- 기록 수집 중
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
OriginalEidetica
Remember Everything. Everywhere. All at once.
I wanted to search my email, so I started by building a decentralized database.
It made sense at the time...
Eidetica will allow you to write a local-first, peer-to-peer, decentralized application just by storing your data here. An app developer does not need to deal with anything else, just use the database interface provided here to store data, add a user flow to initialize sync and "login" to the network, and everything else will be handled for you.
It's not quite all there yet, but I'm working on it. Peer-to-Peer connectivity is only minimal at the moment.
Extensive, but largely LLM Generated/Human Curated documentation is maintained under docs/ and hosted at docs.eidetica.dev.
Blog posts that I've written about Eidetica: https://jackson.dev/tags/eidetica/
Discuss on Matrix:
EXPERIMENTAL
Everything is still experimental, and very much in-development. That includes the underlying storage format, which is still GUARANTEED to change between now and declaring 1.0.
No backwards compatibility OR MIGRATION PATH is guaranteed before 1.0.
Vision
- Peer-to-Peer Database, built on top of layered Merkle-CRDTs
- Direct connections using iroh
- Multi-transport sync (HTTP + Iroh P2P simultaneously)
- Decentralized Authentication
- Built in Rust for native compilation and broad platform support
- Efficient Sync with a data model aware API (TODO)
- P2P Object Storage across the same sync network (TODO)
- Sparse and Shallow views with 0 extra overhead (TODO, data model already supports)
- WASM for embedding it into webapps (TODO)
This is an attempt to combine a few successful decentralized approaches into something more unified, suitable for a storage layer of the decentralized web. There are a few synergies that I am taking advantage of to make each component work together efficiently, so it is more valuable to co-design the Sync API, Storage format, Authentication scheme, etc.
I wanted this for a different project and wasn't able to find something with everything I wanted, so here we are.
Eidetica lets you make a decentralized app, so long as you store your DB (and eventually, Objects), in the storage format here. It manages storage, authentication, sync, conflict resolution, and encryption. Future work includes better peer sync and discovery, user management, sparse checkouts, and many more features.
Contained here are both a library suitable for embedding in your own applications and a binary that will be a hostable multi-user synchronization node.
Under the hood it uses the Merkle-CRDT concept pioneered by OrbitDB to create an eventually consistent database by providing a total ordering of database operations to a CRDT, and extends it by layering multiple DAG's into the underlying structure. This does have downsides, and it is not suitable for all applications, but I think I can take the concept quite far by extending that architecture out into the rest of the system.
OrbitDB relies on IPFS and libp2p to sync, but by writing custom synchronization protocols that understand the data structures I expect that there are large efficiency gains to be had.
The library is extremely modular. It is simple to define your own CRDT, your own custom Backend, even your own transport layer if you need to support Bluetooth/Zigbee/etc communication.
See the docs/ for a user guide, examples, internal architecture, and full design docs explaining design decisions.
Data Model
The user facing data model is intentionally designed to match existing Databases closely.
- Database - The fundamental unit of authentication, synchronization, and storage.
- Store - Part of a Database, think "Table" but more general.
- Transaction - An Atomic Operation across any number of Stores in a Database.
Stores can be any CRDT, even user defined.
At the moment Eidetica provides a Doc type that is a generic nested Document type, a Table that functions as a NoSQL-ish Table for any data you want, and a PasswordStore that wraps any store with transparent password-based encryption.
Behind a feature flag is also a wrapper for the popular Y-Doc CRDT type.
This can be extended with more custom types to match user patterns.
Provided data types all use Last-Write-Wins conflict resolution, but facilities for other strategies will be provided.
A Transaction can operate across multiple Stores, so you can synchronize your changes to multiple Tables/Docs/etc.
Eventually, you will be able to sparsely checkout just particular Stores within a Database while still being able to locally verify the full history, and shallow checkout the current state from the network.
Contributing
At this time, outside contributions will not be accepted due to licensing considerations.
관련 프로젝트 살펴보기
Asabeneh/30-Days-Of-Python
30 Days of Python 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,859 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,472 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,495 스타