saltyim is the Go library and reference client and broker implementation for Salty IM it contains a command-line client (cli), a terminal user interface (tui), builtin server/broker and a Mobile / Desktop App PWA (progressive web app) https://salty.im/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
James Mills 37135ce6af
Fix possible nil map from State.Load()
3 days ago
.chglog Add chglog config 7 months ago
.dockerfiles Tidy up the Docker image's entrypoint 7 months ago
bin Make the service bot actually work finally (#73) 6 months ago
certs Add clean-all target to Makefile 6 months ago
cmd Fix bug when endpoint is invalid or not configured proeprly and fails lookup (#171) 5 months ago
data Use the new and improved with write-ahead-log (wal) support (#136) 6 months ago
docs Fix logo extension 2 weeks ago
hooks support for contacts, multiple chat threads, and persistence (#77) 6 months ago
internal Fix consistent coloring of nicks using taigrr's colorhash library (#173) 2 weeks ago
tools Add lookup command (#4) 7 months ago
.drone.yml Add Avatar service and cli for updating avatar on a broker (#116) 6 months ago
.gitattributes Add clean-all target to Makefile 6 months ago
.gitignore Improve the registration process, add feedback to the PWA's UX adn use an API for registration (#147) 6 months ago
.goreleaser.yml Fix goreleaser config 5 months ago
CHANGELOG.md Update CHANGELOG for 0.0.22 5 months ago
Caddyfile feat: add compression negotiation for sent messages (#91) 6 months ago
Corefile Add Avatar service and cli for updating avatar on a broker (#116) 6 months ago
Dockerfile Fix Dockerfile and add internal/pwas/utils (#100) 6 months ago
LICENSE Fix README (Fixes #74) 2 weeks ago
Makefile Fix README (Fixes #74) 2 weeks ago
OLDREADME.md Update 'OLDREADME.md' 7 months ago
README.md Fix README logo by centering it 2 weeks ago
Roadmap.md Update 'Roadmap.md' 7 months ago
client.go Fix regression in 330701d causing register to no longe rwork 5 months ago
client_test.go Fix bug when endpoint is invalid or not configured proeprly and fails lookup (#171) 5 months ago
db.home.arpa Add Avatar service and cli for updating avatar on a broker (#116) 6 months ago
example-config.yml feat: make endpoint uniform. add profiles (#30) 7 months ago
format.go Refactor Endpoint for automatic endpoint discovery and less configuration (#46) 7 months ago
format_test.go Add unit tests (#55) 7 months ago
go.mod Fix consistent coloring of nicks using taigrr's colorhash library (#173) 2 weeks ago
go.sum Fix consistent coloring of nicks using taigrr's colorhash library (#173) 2 weeks ago
identity.go fix_case_insensitive_addrs (#148) 6 months ago
identity_test.go Fix GetIdentity() 7 months ago
log Improve the registration process, add feedback to the PWA's UX adn use an API for registration (#147) 6 months ago
lookup.go fix_case_insensitive_addrs (#148) 6 months ago
lookup_test.go Add unit tests (#55) 7 months ago
options.go navigation drawer is now fixed for > 900px windows (#157) 6 months ago
preflight.sh feat: hax for great justice (#14) 7 months ago
resolv.go fix: avatar, add logging (#109) 6 months ago
send.go Fix Send() and ProxySend() (#105) 6 months ago
service.go Add support for state for Service{} (#142) 6 months ago
state.go Fix possible nil map from State.Load() 3 days ago
types.go Improve the registration process, add feedback to the PWA's UX adn use an API for registration (#147) 6 months ago
utils.go feat: add compression negotiation for sent messages (#91) 6 months ago
utils_test.go Add unit tests (#55) 7 months ago
version.go Fix version info -v/--version (#138) 6 months ago

README.md

Salty IM -- secure, easy, self-hosted messaging

Build Status Go Report Card Go Reference

SaltyIM Logo

Salty IM is a secure, decentrlaised and easy self-hosted instant messaging alternative. Salty IM is fully encrypted using the salty Go library utilising the Saltypack messaging format and parts of keys.pub implemtnation for its cryptography. Encryption, Decryption and Signing of messages is performed with public key cryptography using the Ed25519 algoritms.

For more information on how the protocol works, please refer to the Specification.

This repository also contains a reference client (written in Go), a reference broker (server) as well as a Terminal TUI (TUI) client called salty-chat and command-line tools:

  • saltyd -- Reference broker (server)
  • salty-chat -- Command-line tools and Terminal UI (TUI)
  • saltyim -- Reference client (Go library)

Quick Start CLI

$ go install go.mills.io/saltyim/cmd/salty-chat@latest
$ salty-chat make-user user@domain
# Follow the insturctions
$ salty-chat chat prologic@mills.io

Alternatively follow the full documentation below to setup your own Salty broker and your domain name.

Quick Start (DEV)

Documentation

See also the Old Readme for how this implementation started out as a simple shell script which you can still find at salty-chat.sh.

Roadmap

Please refer to the Roadmap document.

License

saltyd and salty-chat are licensed under the terms of the MIT license.