| Crates.io | aleo-core |
| lib.rs | aleo-core |
| version | 0.4.0 |
| created_at | 2025-12-06 20:19:11.530233+00 |
| updated_at | 2025-12-23 15:16:33.781423+00 |
| description | Data model for Leo documents (DAG=Directed - Acylic - Graph) |
| homepage | https://repo.computingart.net/aleo-core/ |
| repository | https://repo.computingart.net/aleo-core |
| max_upload_size | |
| id | 1970700 |
| size | 1,615,415 |
This crate contains definitions of traits and structs for representing DAG (Directed Acyclic Graphs) and transforming those graphs in text files as well as parsing text back to original graphs. Similar data structures implemented in Python are used by Leo editor which was my inspiration to start this project.
My current plan is as follows:
finish this crate
using this crate as a fondation, implement Python binary extension using PyO3
implement Tcl binary extension using tcl crate
if possible implement Lua binary extension
(maybe) implement NodeJs binary extension
using Iced GUI write ALeo editor or
using Lua extension, write a neovim plugin and embed it in neovide editor. This would allow me to use nvim as editor for body text. The only problem, I've never wrote a plugin for neovim and I've never used Lua. Though It doesn't seem too hard.
A road towards 1.0 version of this crate:
basic support for outline item fields (key:&str, headline:&str, flags:u16)
basic support for links (methods: children, parents)
basic support for creating and breaking links between nodes
(methods: LeoData::link and LeoData::unlink)
basic support for traversing tree
parsing .leo xml files
parsing at-file files
creating at-file files from tree
creating at-clean files from tree
get test data from Leo source. Using following command:
curl --location -o ../../target/leo-source-v6.8.7.zip https://github.com/leo-editor/leo-editor/archive/refs/tags/v6.8.7.zip cd ../../target unzip leo-source-v6.8.7.zip
This will provide a lot of test files.
line numbering node bodies
converting cursor position from body to external file and vice versa
syncing at-clean files
loading .leo documents containing
saving leo documents to .leo files
saving leo documents to sqlite3 db
supporting undo/redo
supporting tree edit commands