Hacker GitHub

← All repos

josephg/diamond-types

View on GitHub ↗ ★ 1,852 Rust

The world's fastest CRDT. WIP.

20 mentions on Hacker News by 9 people: 1 story, 19 comments · first 2021-07-28 · latest 2026-08-04

Mentions per year 20 mentions · busiest year 2023 (8)
20082026
  1. …and down to reason about. Here’s a 150 line long function I wrote which I think is quite beautiful: https://github.com/josephg/diamond-types/blob/e143890a596aaf... This function traverses a DAG given 2 points in the dag, A and B. It breaks…
    comment by josephg · 2026-08-04 · in "Clean" Code, Horrible Performance (2023)
  2. …diamond-types has done really good work here, with an explanation of their internals here: https://github.com/josephg/diamond-types/blob/master/INTERNA... In conclusion, the article seems to be really down on CRDTs in general, whereas I…
  3. …all that trait foo is what makes it headache inducing. I swear its worth it. [1] Eg MergableSpan: https://github.com/josephg/diamond-types/blob/00f722d6ebdc9f...
    comment by josephg · 2025-08-20 · in CRDT: Text Buffer
  4. …Readme [0]: >And since that blog post came out, performance has increased another 10-80x (!). [0] https://github.com/josephg/diamond-types
    comment by riedel · 2024-08-28 · in Faster CRDTs (2021)
  5. ▲ 8
    Diamond-types – the fastest CRDT. WIP
    story by atomicnature · 2024-07-24 · 0 comments
  6. …- it’s an internal only type and the code is new enough that the paint hasn’t dried yet. https://github.com/josephg/diamond-types/blob/master/src/ost...
  7. …thought has gone into the raw performance you need for text CRDTs that can handle large documents: https://github.com/josephg/diamond-types
  8. …In any case, I agree with the metaphor and batching granular operations can always be done. [1]: https://github.com/josephg/diamond-types
  9. …- Peritext: https://www.inkandswitch.com/peritext/ - Dimond types: https://github.com/josephg/diamond-types People building eventually consistent database syncing with them: - https://electric-sql.com (Postgres <-> SQLite) -
  10. …that queue definition if I wanted to, but it makes the compiler's errors better leaving it in. [1] https://github.com/josephg/diamond-types/blob/66025b99dbe390...
    comment by josephg · 2023-04-14 · in Elixir and Rust is a good mix
  11. …even if it might be slower than yjs (or yrs, its Rust implementation) or diamond-types. [0] https://github.com/josephg/diamond-types [1] https://github.com/automerge/autosurgeon
    comment by satvikpendem · 2023-01-31 · in Automerge 2.0
  12. …Yjs, Kevin Jahns) * https://github.com/y-crdt/ypy (python bindings for the rust implementation) * https://github.com/josephg/diamond-types (Seph Gentle's rust implementation of YATA, the algorith behind Yjs)
    comment by sirodoht · 2023-01-31 · in Automerge 2.0
  13. …(151 comments)], by the creator of another CRDT in Rust library, Diamond Types [ https://github.com/josephg/diamond-types ]
    comment by satvikpendem · 2023-01-31 · in Automerge 2.0
  14. …remarkable. Devastating for the ego, but remarkable. Edit: Simple dbg_check implementation example: https://github.com/josephg/diamond-types/blob/3eb48478fd879e... And here's a simple fuzz tester: https://github.com/josephg/jumprope-rs/blob…
  15. …think of a way to implement text on your proposed system which would be performant and simple. [1] https://github.com/josephg/diamond-types
    comment by josephg · 2022-12-06 · in You might not need a CRDT
  16. …https://github.com/josephg/reference-crdts [2] https://home.seph.codes/public/node_graph.svg [3] https://github.com/josephg/diamond-types/tree/master/src/lis...
    comment by josephg · 2022-04-21 · in WebAssembly 2.0 First Working Draft
  17. …CRDT which fits in 100 lines of javascript. The next piece of work is marrying them together. [1] https://github.com/josephg/diamond-types/ [2] https://josephg.com/blog/crdts-go-brrr/ [3] https://github.com/y-crdt/y-crdt/tree/main/yrs [4]…
  18. …Code is here, if anyone is interested. The whole thing is a few hundred lines all up: https://github.com/josephg/diamond-types/tree/0cb5d7ecf49364...
  19. …"truncate" method splits an item in two. Spans are only extended if can_append() returns true: https://github.com/josephg/diamond-types/blob/c4d24499b70a23... With real data from Martin's editing trace, 182 000 inserted characters get…
  20. …not beautiful or overly fancy. Just steady, confident and readable (assuming you know the context): https://github.com/josephg/diamond-types/blob/2e807298a70382...
    comment by josephg · 2021-07-28 · in Coding with Character