Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    R

    Raph Levien

    medium.com/@raphlinus · Personal blog · on HN since 2016

    Raph Levien, a software engineer, writes about CRDTs and operational transformation, and about font rendering in Rust.

    Visit blogHN submissions
    Distributed SystemsSystems & PerformanceLanguages & Compilers
    What HN says

    HN commenters cite his work on unifying OT and CRDT and his fast font renderer, and call the CRDT writing hard-won but unfinished.

    Stats for nerds
    16HN people shared it
    11linked in comments
    620story points
    Apr 2023last shared
    2016people per year2023

    Top posts on HN

    1. 1
      Inside font-rs, a font renderer written in Rust
      7 people · 469 points · first shared 2016 · 115 comments on HN
    2. 2
      Show HN: Working code for Operational Transformation/CRDT hybrid
      2 people · 132 points · first shared 2017 · 28 comments on HN
    3. 3
      Towards a Unified Theory of Operational Transformation and CRDT
      10 people · 19 points · first shared 2016 · 1 comments on HN

    What HN people wrote when they linked it

    • vlovich123Apr 2023

      Nope no ChatGPT.

      You may want to reread what I said. I was responding to someone talking about games and game performance in the context of text rendering. And the PhD research topic is how to use the GPU to accelerate text rendering.

      You seem to perhaps be misunderstanding what I’m saying and somehow thinking I’m defending

      > Microsoft Teams takes 9 seconds to display under a kilobyte of text, including 3 seconds to just display a splash screen)

      I’m not. Clearly it shouldn’t take that long to render that text. But achieving a screen full of text at 120fps (or is it even just 60fps) on the highest resolution displays is actually a difficult problem for CPU renderers to achieve (even for the greatly simplified case of a single mono space font). If you think otherwise, you may want to sync up with Raph and publish your contributions to this space. It’s possible I’m getting some of the specific details wrong (again - not my area of expertise) but there’s definitely a push to find HW acceleration within the GPU to achieve those frame rates (and not just text rendering - all 2D rendering is difficult to HW accelerate).

      Notice in [3] how CPU renderers are still lower latency than GPU ones because it’s an area of active research that hasn’t yielded winners yet.

      Also I’m well aware we have super computers in our pocket. But don’t forget that the screen resolution is really frickin high and DPI scaling on top (so that text is actually legible) adds additional overheads (+…

    • burntsushiOct 2017

      I've been following the literature on this topic for a while now, and I've always wished for more examples of actual systems built with these techniques. Are there any? What kind of scales do they deal with? Are there any write-ups on them? (I know of at least one good one[1].)

      In particular, I've wondered how a simpler solution to the problems posed in this paper stacks up. At what point does it fail? e.g., Consider:

      * An op based model.
      * A client-server architecture (not p2p).
      * Operations are assigned a total ordering by a central server.
      * Given any two dependent operations A and B, A is always
      transmitted before B.

      This still gives you a lot of the stated advantages of an eventually consistent system, where each client communicating with the server will eventually converge even if they all temporarily diverge. The central server and total ordering is a key ingredient, because it's what lets you guarantee ordering between any two causal operations by having the server "choose" an ordering.

      I'm naturally interested in trade offs. For what use cases does the central server model break down? Is it still useful for other things at lesser scales?

      [1] - https://medium.com/@raphlinus/towards-a-unified-theory-of-operational-transformation-and-crdt-70485876f72f

    • archagonAug 2018

      If anyone’s interested, I wrote a long article a few months ago on (what I believe to be) the ultimate string CRDT, among other things: http://archagon.net/blog/2018/03/24/data-laced-with-history/

      I really, really love the work that Levien and Hume have put into the Xi CRDT, and how open they’ve been with their research. IMHO, though, it’s a bit too “academic” and clever for any sort of general purpose use, though it may well be ideally suited for its stated purpose. There even appears to be a limit to the amount of rewinding you can do, which points to O(n^2) complexity for conflict resolution: a huge problem for offline-first development, where concurrent timelines don’t really have any limit on the length of their diverging histories. (I might be mistaken about this—please correct me if I’m wrong.)

      Still a very satisfying algorithm, though! You can see more of Raph Levien’s thinking here: https://medium.com/@raphlinus/towards-a-unified-theory-of-operational-transformation-and-crdt-70485876f72f

    • conradevOct 2016

      If the language is relevant to the innovation then I think it's fine to mention it. For example, a font renderer in Rust that is faster than FreeType[1]. There is also Servo[2], which is a web rendering engine that will be able to eliminate memory corruption bugs.

      For other projects (like this one) I find that the language can be a distraction from the actual value it provides.

      [1] https://medium.com/@raphlinus/inside-the-fastest-font-renderer-in-the-world-75ae5270c445#.os6a1lsrd

      [2] https://servo.org

    • raphlinusNov 2018

      That might be mine as well, https://medium.com/@raphlinus/towards-a-unified-theory-of-operational-transformation-and-crdt-70485876f72f . It's very much unfinished work though. Certainly wrapping my head around the OT and CRDT literature took huge amounts of brainpower exertion, comparable to what I did for my PhD.

      Also, I have your essay in my queue to read more thoroughly, it's high on my list of stuff to study as we possibly rethink the way this stuff works in xi-editor.

    • zellynOct 2018

      If you're interested in this stuff, you might also like Raph Levien's writing on it:

      - https://medium.com/@raphlinus/towards-a-unified-theory-of-operational-transformation-and-crdt-70485876f72f

      - https://github.com/xi-editor/xi-editor/blob/e8065a3993b80af0aadbca0e50602125d60e4e38/doc/crdt-details.md

    Related

    Patrick Waltonpcwalton.github.io53 people

    Pathfinder, a fast GPU-based font rasterizer in Rust

    Patrick Walton
    Personal · last shared 2025
    Laurenz Mädjelaurmaedje.github.io17 people

    TeX and Typst: Layout Models (2024)

    Laurenz Mädje
    Personal · last shared 2026
    Archagonarchagon.net23 people

    Show HN: Domain-tailored CRDTs for collaboration without server involvement

    Archagon
    Personal · last shared 2024
    Niko Matsakissmallcultfollowing.com221 people

    Towards a Rust Foundation

    Niko Matsakis
    Personal · last shared 2026
    Joseph Gentlejosephg.com100 people

    Electron is flash for the desktop (2016)

    Joseph Gentle
    Personal · last shared 2026
    Andrew Gallantblog.burntsushi.net141 people

    My FOSS Story

    Andrew Gallant
    Personal · last shared 2026
    Aria Beingessnergankra.github.io58 people

    Text Rendering Hates You

    Aria Beingessner
    Personal · last shared 2022
    Manish Goregaokarmanishearth.github.io97 people

    Picking Apart the Crashing iOS String

    Manish Goregaokar
    Personal · last shared 2026