Skip to content

renesugar/gossip

 
 

Repository files navigation

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.

Features

  • Asychronous design: No busy waiting, no repeatitive polling, easy on your processor.
  • Portable to Linux (Debian, RedHat, Arch) MacOS and Windows
  • 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.
  • Look good in light and dark modes.

nostr features supported

  • 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

  • Lets you choose and manage relays you post to
  • Lets you post messages
  • Shows reactions (but maybe not yet react yourself)
  • Lets you 'load more' older posts if you want to look back further

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

  • Tauri App Framework
  • Rust Language
  • HTML and Javascript
  • VueJS 3.x (Composition API)
  • Vue-Router
  • Pinia (Javascript global data storage)
  • Vite (for development)
  • Yarn (for development)
  • SQLite 3
  • Tungstenite websocket library
  • Tokio async task runtime
  • Serde serialization/deserialization
  • Many others: (dirs, env_logger, futures, lazy_static, log, nostr-proto, rusqlite, serde_json, textnonce, thiserror)

License

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.

About

Gossip is a nostr client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 65.8%
  • Vue 29.3%
  • JavaScript 3.1%
  • CSS 1.4%
  • Other 0.4%