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 15a64de828 Fix CI by using my local exec runner(s) (#190) 16 hours ago
.chglog Add chglog config 11 months ago
.dockerfiles Tidy up the Docker image's entrypoint 10 months ago
bin Make the service bot actually work finally (#73) 10 months ago
certs Add clean-all target to Makefile 10 months ago
cmd Refactor read options with functional options for easier usage (#183) 24 hours ago
data Add blob service and support for signing and verifying HTTP requests (#178) 3 days ago
docs Add blob service and support for signing and verifying HTTP requests (#178) 3 days ago
hooks support for contacts, multiple chat threads, and persistence (#77) 10 months ago
internal Fix typos (#186) 24 hours ago
tools Add lookup command (#4) 11 months ago
.drone.yml Fix CI by using my local exec runner(s) (#190) 16 hours ago
.gitattributes Add clean-all target to Makefile 10 months ago
.gitignore Add blob service and support for signing and verifying HTTP requests (#178) 3 days ago
.goreleaser.yml Fix goreleaser config 9 months ago
CHANGELOG.md Update CHANGELOG for 0.0.22 9 months ago
Caddyfile feat: add compression negotiation for sent messages (#91) 10 months ago
Corefile Add Avatar service and cli for updating avatar on a broker (#116) 10 months ago
Dockerfile Fix Dockerfile and add internal/pwas/utils (#100) 10 months ago
LICENSE Fix README (Fixes #74) 4 months ago
Makefile Add resolver tests (#182) 24 hours ago
OLDREADME.md Update 'OLDREADME.md' 10 months ago
README.md Fix README logo by centering it 4 months ago
Roadmap.md Update 'Roadmap.md' 10 months ago
addr.go Fix typos (#186) 24 hours ago
assertions_test.go Add client e2e integration tests (#180) 2 days ago
client.go Refactor read options with functional options for easier usage (#183) 24 hours ago
client_blob_service.go Add .Blobs() service object to the client for easier usage of the Blob API (#184) 24 hours ago
client_e2e_test.go Fix typos (#186) 24 hours ago
db.home.arpa Add Avatar service and cli for updating avatar on a broker (#116) 10 months ago
doc.go Add package level docs 2 weeks ago
example-config.yml feat: make endpoint uniform. add profiles (#30) 10 months ago
format.go Add format tests (#181) 24 hours ago
format_test.go Add format tests (#181) 24 hours ago
go.mod Fix tests (#179) 3 days ago
go.sum Add blob service and support for signing and verifying HTTP requests (#178) 3 days ago
identity.go Add client e2e integration tests (#180) 2 days ago
identity_test.go Add client e2e integration tests (#180) 2 days ago
lookup.go Add resolver tests (#182) 24 hours ago
lookup_test.go Add client e2e integration tests (#180) 2 days ago
options.go Add client e2e integration tests (#180) 2 days ago
preflight.sh feat: hax for great justice (#14) 11 months ago
resolver.go Add resolver tests (#182) 24 hours ago
resolver_e2e_test.go Add resolver tests (#182) 24 hours ago
send.go Add doc strings for all the thigns 2 weeks ago
service.go Refactor read options with functional options for easier usage (#183) 24 hours ago
state.go Add doc strings for all the thigns 2 weeks ago
types.go Fix typos (#186) 24 hours ago
utils.go Fix typos (#186) 24 hours ago
utils_test.go Add unit tests (#55) 10 months ago
version.go Fix version output when no version is injected (i.e: go install) 2 weeks 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.