Expand description
Linkspace - a general purpose supernet
Supernet [ˈsü-pərˌnet] A self-referential multi-participant data organization protocol whose primary addressing method uses hashes instead of endpoint identifiers. A communication protocol where the method of exchange is an extraneous concern. e.g. git, bitcoin, nostr, linkspace
In a supernet anybody can talk about data, instead of talking at a server.
A supernet is ideal when multiple participants want to own and administrate (part of) a digital system. This is in contrast to current technologies where users contact a single host, which acts as de facto administrator by virtue of hosting the data.
Linkspace is supernet with the following highlights:
- Small and powerful API
- Fast (Blake3, no JSON/Base64 encoding, well aligned fields)
- Path (URL like) addressable data
- Group/Domain split
Check out Basics for an introduction. Download to give it a try and say hi on the test group. Check out the Guide if you’re interested in the technical breakdown.
The packet and database layout are stable, but some things are incomplete or undocumented.
Any feedback, questions, and ideas for improvements are welcome!
Of course the preferred way is to try and contact me by downloading the zip and sending a message to the test group. For the less adventurous you can open an issue on github or email me at antonsol919@gmail.com.
The functions re-exported below is essentially the entire linkspace interface. Bindings in other languages follow the same pattern.
prelude includes some additional utilities. Some internals structs defs are currently leaking and will be removed.
Re-exports
pub use point::lk_datapoint;pub use point::lk_keypoint;pub use point::lk_linkpoint;pub use abe::lk_encode;pub use abe::lk_eval;pub use abe::lk_split_abe;pub use query::lk_query;pub use query::lk_query_parse;pub use query::lk_query_print;pub use query::lk_query_push;pub use query::Query;pub use key::lk_key;pub use runtime::lk_get;pub use runtime::lk_open;pub use runtime::lk_process;pub use runtime::lk_process_while;pub use runtime::lk_save;pub use runtime::lk_stop;pub use runtime::lk_watch;pub use runtime::Linkspace;pub use conventions::lk_pull;pub use misc::cb;
Modules
- ascii byte expression utilities
- A set of functions that adhere to conventions
- Functions with a custom eval context