mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-30 00:41:42 +00:00
80 lines
3.0 KiB
Markdown
80 lines
3.0 KiB
Markdown
# Gossip
|
|
|
|
Gossip is a desktop client for nostr.
|
|
|
|
Nostr is "Notes and Other Stuff Transmitted by Relays."
|
|
|
|
This is pre-alpha code. It is not ready for use.
|
|
|
|
NOTE: After two false starts (tauri, gtk4) I'm moving to egui, which should be much easier
|
|
and faster to develop.
|
|
|
|
## Features
|
|
|
|
- Asychronous design: No busy waiting or polling.
|
|
- Portable. The UI will run on anything that runs one of these backends: OpenGL (glium, glow), OpenGL ES (glow, wgpu), WebGL (glow), Vulkan (wgpu), Metal (wgpu), DirectX 11/12 (wgpu), Browsers (WebAssembly). And rust runs very many places.
|
|
- Talks to as few relays as it needs to to keep up with the people you follow, and doesn't overload them with too heavy of requests.
|
|
|
|
## nostr features supported
|
|
|
|
This section will need updating.
|
|
- Reads and displays type=1 (TextNote) events in a feed sorted by time created.
|
|
- Shows replies under the message they reply to
|
|
- Shows deleted events struck out with red deleted marker.
|
|
- Shows people you subscribe to in the Person tab
|
|
- Processes type=0 (Metadata) events to show user information on events in your feed (name, avatar)
|
|
- Lets you subscribe to a person (via public key and relay), but currently requires a restart
|
|
- Identity:
|
|
- Lets you generate an ID (private key) and stores that key encrypted under a passphrase, zeroing memory when finished with it where it can.
|
|
- Lets you import an ID (private key)
|
|
- Settings: feed chunk size, overlap, autofollow, but these don't work right yet.
|
|
|
|
## nostr features planned for first alpha release
|
|
|
|
- [ ] Create your identity
|
|
- [ ] Follow people and see their feed posts in time order
|
|
- [ ] See your feed in threaded mode
|
|
- [ ] Choose and manage relays to post to
|
|
- [ ] Post messages and reactions
|
|
- [ ] Show reactions
|
|
|
|
## nostr features planned for subsequent releases
|
|
|
|
- [ ] Lets you subscribe to a person via a DNS ID (NIP-35)
|
|
- [ ] Validates users via NIP-05
|
|
- [ ] Lets you react to other people's posts
|
|
- [ ] Lets you show events from people you don't follow if they reply to a post you do
|
|
- [ ] Lets you mute someone
|
|
- [ ] Lets you rank relays
|
|
- [ ] Shows links as links
|
|
- [ ] Shows images inline (option to wait for your approval)
|
|
- [ ] Include a 'client' tag
|
|
- [ ] Show the 'client' tag of posts
|
|
- [ ] Support "content-warning"
|
|
- [ ] Allow browsing of relay-global events of people you dont follow
|
|
- [ ] Multiple identities
|
|
- [ ] Publish your following list
|
|
- [ ] Follow someone privately (without including in your posted following list)
|
|
- [ ] Allow viewing of other people's following lists w/ petnames
|
|
- [ ] Dismiss a message for this session only w/o deleting it
|
|
|
|
## Technology Involved
|
|
|
|
- Rust Language
|
|
- egui Rust GUI framework
|
|
- SQLite 3
|
|
- Tungstenite websocket library
|
|
- Tokio async task runtime
|
|
- Serde serialization/deserialization
|
|
- Many others
|
|
|
|
## License
|
|
|
|
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
|
|
|
### Contribution
|
|
|
|
Unless you explicitly state otherwise, any contribution intentionally submitted
|
|
for inclusion in the work by you, shall be licensed as above, without any additional
|
|
terms or conditions.
|