org-social-rs
A Rust-based CLI and TUI client for the Org-social decentralized social network.
Current version is targeting 1.1 release.
Overview
org-social-rs provides both command-line and terminal user interface tools for interacting with Org-social networks. This allows the user to use the network without the heavy overhead of emacs, though with some limitations (at least for now).
Features
- CLI Interface: View feeds, filter posts, get some stats
- TUI Interface: Interactive terminal-based interface for browsing and navigating social feeds, powered by ratatui
- Feed & Threaded view: See posts chronologically or in a threaded view
- Post & Reply System: Create and save new posts and replies to conversations
TODO
Somewhat paired to the lib's features - as it's todo gets fullfilled, the same features should land here where applicable.
In no particular order:
- File based configuration
- Search & filter in the tui
- Formatting improvements
- Automatic remote feeds sync - powered by pre- and post- hooks, most likely bash commands from config. Or built-in support for a particular tool users prefer.
- UX improvements - controls are very random and all over the place.
- CLI feature parity - CLI should also have access to posting and replying.
- Bug fixes, edge case handling - the tool is not very tested.
Installation
# Install from crates.io
Development Installation
# Clone the repository
# Run the program, without installing
# Build the project
# Manually copy the binary to your bin directory
OR
# Build the release version of the program, put it in the Cargo bin directory
Usage
CLI Mode
Meant mostly for integrating as, for example, part of a bash script. Can force colored (on not) output with the --color flag.
CLI does not yet have all TUI features for displaying posts and feeds, or creating new posts & replies.
# View feed with latest posts
# Limit number of posts
# Filter posts from recent days
TUI Mode
Meant to serve as an actual client, exposing most features.
# Launch interactive terminal interface
Library
This project uses the org-social-lib-rs library for core functionality. If you want to integrate org-social into something, build a specific client (maybe a real gui?), feel free to check it out.
Contributing
Report issues (there are probably a lot of them), submit pull requests, help is welcome.
License
This project is licensed under the GNU General Public License v3.0.
Related Projects
- org-social.el - Original Emacs client
- org-social - Protocol specification and documentation