What's is a rusty way to implement sharable trees?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • xi-editor

    A modern editor with a backend written in Rust.

  • This is pretty much how copy-on-write ropes work. Check out xi-rope, Ropey or crop, they're all built using B-trees and implement the behavior you described.

  • ropey

    A utf8 text rope for manipulating and editing large texts.

  • This is pretty much how copy-on-write ropes work. Check out xi-rope, Ropey or crop, they're all built using B-trees and implement the behavior you described.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • crop

    🌾 A pretty fast text rope

  • This is pretty much how copy-on-write ropes work. Check out xi-rope, Ropey or crop, they're all built using B-trees and implement the behavior you described.

  • rust-analyzer

    A Rust compiler front-end for IDEs

  • Arc (or Rc if single threaded) sounds like a good fit since you mention immutability and no parent-pointers. If the lack of parent pointers or contextual information gets frustrating, I just want to mention the "Red/Green trees" approach used by Roslyn and rust-analyzer (link) where the "green tree" stores the data using basic Arcs and child pointers only, but later on you can create a "red tree" rooted at any green node which provides parent pointers as you navigate through the tree.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts