ewig
double-conversion
ewig | double-conversion | |
---|---|---|
3 | - | |
517 | 15 | |
- | - | |
0.0 | 4.8 | |
over 1 year ago | about 1 month ago | |
C++ | C++ | |
GNU General Public License v3.0 only | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ewig
-
Text Editor Data Structures
You might be interested in ewig and immer by Juan Pedro Bolivar Puente:
https://github.com/arximboldi/ewig
https://github.com/arximboldi/immer
See the author instantly opening a ~1GB text file with async loading, paging through, copying/pasting, and undoing/redoing in their prototype “ewig” text editor about 27 minutes into their talk here:
https://m.youtube.com/watch?v=sPhpelUfu8Q
It’s backed by a “vector of vectors” data structure called a relaxed radix balanced tree:
https://infoscience.epfl.ch/record/169879/files/RMTrees.pdf
That original paper has seen lots of attention and attempts at performance improvements, such as:
https://hypirion.com/musings/thesis
https://github.com/hyPiRion/c-rrb
-
Ask HN: How to learn about text editor architectures and implementations?
Ewig is an interesting implementation using immutable data structures. https://github.com/arximboldi/ewig Very proof of concept, tries to be a little vi like. Might be worth checking out.
-
Build Your Own Text Editor
For another approach: I built a didactic text editor to teach "value oriented design" and immutable data-structures in C++:
https://github.com/arximboldi/ewig
It's design is covered in these talks:
- Postmodern immutable data structures: https://www.youtube.com/watch?v=sPhpelUfu8Q
- The most valuable values: https://www.youtube.com/watch?v=_oBx_NbLghY
double-conversion
We haven't tracked posts mentioning double-conversion yet.
Tracking mentions began in Dec 2020.
What are some alternatives?
immer - Postmodern immutable and persistent data structures for C++ — value semantics at scale
JSONb - Parses JSON from byte strings (instead of character strings).
lite - A lightweight text editor written in Lua
Zwaluw - Haskell combinators for bidirectional URL routing
Adria-DX11 - Graphics engine written in C++ using DirectX11
punycode - Punycode encoding and decoding
bee - (Archived, Incomplete) Text editor written in Bash 3
wybor - Console line fuzzy search
kilo - A text editor in less than 1000 LOC with syntax highlight and search.
pugixml - pugixml binding for haskell.
TinyMCE - The world's #1 JavaScript library for rich text editing. Available for React, Vue and Angular
localize - Higher-level internationalization framework, based on haskell-gettext and text-format-heavy