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)
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
James Mills cb7441efa7
Fix Dockerfile to remove non-existent internal/web paths
1 month ago
.chglog Add chglog config 1 year ago
.dockerfiles Tidy up the Docker image's entrypoint 1 year ago
bin Make the service bot actually work finally (#73) 1 year ago
certs Add clean-all target to Makefile 1 year ago
cmd Fix client.Read() context usage 3 months ago
data Add blob service and support for signing and verifying HTTP requests (#178) 4 months ago
docs Add blob service and support for signing and verifying HTTP requests (#178) 4 months ago
hooks support for contacts, multiple chat threads, and persistence (#77) 1 year ago
internal Split out the PWA into its own repository (#194) 1 month ago
tools Add lookup command (#4) 1 year ago
.drone.yml Update version of kaniko used to build docker images 1 month ago
.gitattributes Add clean-all target to Makefile 1 year ago
.gitignore Add blob service and support for signing and verifying HTTP requests (#178) 4 months ago
.goreleaser.yml Rename package to go.salty.im/saltyim 3 months ago
CHANGELOG.md Update CHANGELOG for 0.0.22 1 year ago
Caddyfile feat: add compression negotiation for sent messages (#91) 1 year ago
Corefile Add Avatar service and cli for updating avatar on a broker (#116) 1 year ago
Dockerfile Fix Dockerfile to remove non-existent internal/web paths 1 month ago
LICENSE Fix README (Fixes #74) 8 months ago
Makefile Split out the PWA into its own repository (#194) 1 month ago
OLDREADME.md Update 'OLDREADME.md' 1 year ago
README.md Rename package to go.salty.im/saltyim 3 months ago
Roadmap.md Update 'Roadmap.md' 1 year ago
addr.go Fix typos (#186) 4 months ago
assertions_test.go Add client e2e integration tests (#180) 4 months ago
client.go Fix typo 3 months ago
client_blob_service.go Add .Blobs() service object to the client for easier usage of the Blob API (#184) 4 months ago
client_e2e_test.go Rename package to go.salty.im/saltyim 3 months ago
db.home.arpa Add Avatar service and cli for updating avatar on a broker (#116) 1 year ago
doc.go Add package level docs 5 months ago
example-config.yml feat: make endpoint uniform. add profiles (#30) 1 year ago
format.go Add format tests (#181) 4 months ago
format_test.go Rename package to go.salty.im/saltyim 3 months ago
go.mod Split out the PWA into its own repository (#194) 1 month ago
go.sum Split out the PWA into its own repository (#194) 1 month ago
identity.go Add client e2e integration tests (#180) 4 months ago
identity_test.go Rename package to go.salty.im/saltyim 3 months ago
lookup.go Add resolver tests (#182) 4 months ago
lookup_test.go Add client e2e integration tests (#180) 4 months ago
options.go Add client e2e integration tests (#180) 4 months ago
preflight.sh feat: hax for great justice (#14) 1 year ago
resolver.go Add resolver tests (#182) 4 months ago
resolver_e2e_test.go Rename package to go.salty.im/saltyim 3 months ago
send.go Add doc strings for all the thigns 5 months ago
service.go Refactor read options with functional options for easier usage (#183) 4 months ago
state.go Add doc strings for all the thigns 5 months ago
types.go Fix typos (#186) 4 months ago
utils.go fix: use default client for testing (#191) 3 months ago
utils_test.go Add unit tests (#55) 1 year ago
version.go Fix version output when no version is injected (i.e: go install) 5 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.salty.im/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.