All Projects → josephg → textot.rs

josephg / textot.rs

Licence: other
Text operational transform library, for rust. Compatible with libot, ottypes/text.

Programming Languages

rust
11053 projects

Rust Plain text OT library

This is a simple little rust library to compare writing OT code in rust vs javascript or C.

Surprisingly the rust implementation is the shortest of the three of them, clocking in at 319 loc vs JS's 357 loc or C's 800 loc.

The code is very new, and I'm still getting a handle on rust itself. Next step: Benchmarks.

I haven't put this code up on crates.io. Ping me if you want to use it for any reason and I'll put it up there.

Missing features:

  • No efficient rope library for efficient string inserts & deletes. Mind you, because of rust's type classes it should be possible to make this code work with very rich text types for editors.
  • No cursor position transformation code. Ranges and markers would be more efficiently handled by applying an operation to a range tree.

License

All code contributed to this repository is licensed under the standard MIT license:

Copyright 12,017 HE Joseph Gentle

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following condition:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].