Skip to content

Commit 199abd1

Browse files
committed
Add iroh-loro-realtime: Real-time collaborative CRDT synchronization
- Complete real-time protocol with incremental sync and persistent connections - Presence awareness with cursor tracking and user indicators - Conflict resolution with automatic and manual strategies - Connection management with heartbeats and reconnection - TUI editor example for collaborative text editing - CLI demo with interactive commands - Comprehensive documentation with architecture diagrams - Updated main README with new package entry
1 parent aa6ef47 commit 199abd1

File tree

12 files changed

+2875
-1
lines changed

12 files changed

+2875
-1
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ Iroh integration with [automerge]
3838

3939
### [iroh-loro](iroh-loro)
4040

41-
Iroh integration with [Loro]
41+
Collaborative CRDT synchronization using [Loro](https://loro.dev) and iroh.
42+
43+
### [iroh-loro-realtime](iroh-loro-realtime)
44+
45+
Real-time collaborative CRDT synchronization with presence awareness, conflict resolution, and TUI editor support.
4246

4347
### [iroh-gateway](iroh-gateway)
4448

iroh-loro-realtime/Cargo.toml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[package]
2+
name = "iroh-loro-realtime"
3+
version = "0.1.0"
4+
edition = "2021"
5+
authors = ["Your Name <[email protected]>"]
6+
description = "Real-time collaborative CRDT synchronization using Loro and iroh P2P networking"
7+
license = "MIT OR Apache-2.0"
8+
repository = "https://github.com/n0-computer/iroh-examples"
9+
keywords = ["crdt", "p2p", "collaboration", "loro", "iroh"]
10+
categories = ["network-programming", "data-structures"]
11+
12+
[dependencies]
13+
# Core dependencies
14+
loro = "1.0"
15+
iroh = "0.28"
16+
tokio = { version = "1.0", features = ["full"] }
17+
anyhow = "1.0"
18+
serde = { version = "1.0", features = ["derive"] }
19+
bincode = "1.3"
20+
uuid = { version = "1.0", features = ["v4"] }
21+
22+
# Async utilities
23+
tokio-util = { version = "0.7", features = ["codec"] }
24+
futures = "0.3"
25+
26+
# CLI and logging
27+
clap = { version = "4.0", features = ["derive"] }
28+
tracing = "0.1"
29+
tracing-subscriber = "0.3"
30+
31+
# Optional TUI dependencies
32+
ratatui = { version = "0.28", optional = true }
33+
crossterm = { version = "0.28", optional = true }
34+
35+
[features]
36+
default = []
37+
tui = ["ratatui", "crossterm"]
38+
39+
[[bin]]
40+
name = "realtime-demo"
41+
path = "src/bin/demo.rs"
42+
43+
[[example]]
44+
name = "tui-editor"
45+
path = "examples/tui_editor.rs"
46+
required-features = ["tui"]

0 commit comments

Comments
 (0)