glyph
6e5c017dd7
Reviewed-on: #6 |
||
---|---|---|
screenshots | ||
src | ||
static | ||
templates | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
README.md
lykin
Symbiosis of SSB, key-value store and web server.
Introduction
lykin is a tutorial application funded by a Secure Scuttlebutt (SSB) community grant. It is intended to showcase one way in which an SSB application can be written using the golgi client library. The application is not intended for widespread or longterm use and will not be maintained as such; it is purely for demonstration purposes. Anyone is free to fork the repository and use it as the basis for their own application.
If you'd like to learn how lykin works, or how to build your own simple Scuttlebutt client application, please read the lykin tutorial series. You might also like to watch the lykin demonstration video.
Quickstart
Prerequisites: a running instance of go-sbot (see the installation guide).
Download, build and run lykin.
git clone https://git.coopcloud.tech/glyph/lykin.git
cd lykin
cargo build --release
RUST_LOG=lykin=info ./target/release/lykin
Open localhost:8000
in your browser.
Note: by default, lykin attempts to connect to the go-sbot instance on port 8021. Set the GO_SBOT_PORT
environment variable if you wish to use another port.
Features
lykin presents an email inbox-like UI and functions as a Scuttlebutt reader application. It allows the user to subscribe to peers and read the root posts of those peers. Individual posts can be marked as read or unread.
A summary of the features:
- Subscribe to a peer (follow)
- Unsubscribe from a peer (unfollow)
- List subscribed peers
- List root posts for each peer
- Mark a post as read
- Mark a post as unread
- Fetch new posts
Design
lykin has been built with the following components:
- tera : templating engine
- rocket : web server
- golgi : Scuttlebutt client library
- sled : transactional embedded database (key-value store)
- sbot : Scuttlebutt server (in our case, go-ssb)
Documentation
This project is documented in the form of code comments and Rust doc comments. In order to generate and read the doc comments in a web browser, run the following command in the lykin repo:
cargo doc --open --no-deps
Logging
lykin emits logs at three levels: debug
, info
and warn
. The log level can be set using the RUST_LOG
environment variable.
For example, emit only info
logs:
RUST_LOG=lykin=info ./target/release/lykin
It is also possible to emit logs solely from a single module of lykin.
For example, emit only warn
logs from the db
module of lykin:
RUST_LOG=lykin::db=warn cargo run
Thanks
I am grateful to the Butts who voted to fund this work, all contributors to the SSBC and Erick Lavoie in particular - both for partially funding this work and for developing and overseeing the community grant process.
Contact
I can be reached via email: glyph@mycelial.technology or Scuttlebutt: @HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519
.
License
MIT.