Session Desktop - Onion routing based messenger
Go to file
2020-02-14 09:01:46 +11:00
.github GitHub actions (#814) 2020-02-07 13:20:40 +11:00
.tx Transifex config specific to electron, updated translations (#1478) 2017-09-14 17:48:09 -07:00
.vscode Merge branch 'clearnet' into multi-device 2019-09-16 15:59:40 +10:00
_locales secretPrompt fix 2020-02-12 17:40:56 +11:00
app Make RSS feed names match iOS 2020-02-09 21:39:42 -08:00
build GitHub actions (#814) 2020-02-07 13:20:40 +11:00
components Partial Merge commit 'bf904ddd129ceba8fa363ccf6d10ecd256c65f63' into signal-1.23 2019-04-17 13:47:17 +10:00
config Fileserver update 2020-02-05 10:08:55 +11:00
fixtures add back file which should have not been deleted 2020-01-30 17:13:53 +11:00
fonts fix font of description to sfprodisplay 2020-01-31 15:02:31 +11:00
images CLosed groups ui initial listprops 2020-02-04 11:55:01 +11:00
js Refactor session reset handling 2020-02-13 13:05:20 +11:00
libloki Linting 2020-02-14 09:01:46 +11:00
libtextsecure Fix friend request logic triggerring on session requests 2020-02-13 13:44:53 +11:00
mnemonic_languages languages json 2019-08-08 15:37:47 +10:00
mockup_servers Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
protos Rename BACKGROUND_FRIEND_REQUEST to SESSION_REQUEST. 2020-02-05 10:32:14 +11:00
stylesheets Various UI improvements 2020-02-12 17:27:14 +11:00
test Closed group update message stylgin 2020-02-05 14:19:01 +11:00
ts secretPrompt fix 2020-02-12 17:40:56 +11:00
.aptly.conf Setup publishing to s3 2017-09-14 16:53:36 -07:00
.editorconfig Use 2 spaces for indentation 2018-05-04 15:37:46 -04:00
.eslintignore Merge signal-1.24.0 2019-04-18 12:45:19 +10:00
.eslintrc.js Refactor session reset handling 2020-02-13 13:05:20 +11:00
.gitattributes Stop git from defaulting to changing line endings 2019-02-14 12:20:37 +11:00
.gitignore remove eslintcache 2020-02-03 15:53:36 +11:00
.gitlab-ci.yml Fix CI 2019-10-23 11:20:11 +11:00
.nvmrc Upgrade to node 10.13.0; update chokidar, its dep upath fails 2018-11-26 15:26:04 -08:00
.prettierignore Merge signal-1.24.0 2019-04-18 12:45:19 +10:00
.prettierrc.js Add .prettierrc.js 2018-04-30 16:53:34 -04:00
.travis.yml Remove travis windows. 2019-04-30 10:31:39 +10:00
.yarnclean node-sqlcipher update: always build, statically link openssl 2018-08-02 17:32:51 -07:00
about.html Various UI improvements 2020-02-12 17:27:14 +11:00
about_preload.js Show commit hash in About window for beta builds 2019-03-01 17:10:20 +11:00
appveyor.yml Removed testing windows release on AppVeyor 2019-04-30 13:57:35 +10:00
aptly.sh Remove unused aptly target 2019-03-28 17:23:09 -07:00
background.html Various UI improvements 2020-02-12 17:27:14 +11:00
bower.json Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10:00
BUILDING.md GitHub actions (#814) 2020-02-07 13:20:40 +11:00
CONTRIBUTING.md Updated all icon references 2020-01-30 14:19:07 +11:00
debug_log.html Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10:00
debug_log_preload.js Update the user agent for debug log requests 2018-07-18 20:00:10 -07:00
dev-app-update.yml.sample Show dialog box when there's an update for download 2017-09-14 16:53:50 -07:00
find_broken_perms.sh Add two scripts to handle broken permissions in release dir 2017-09-14 16:53:49 -07:00
fix_broken_perms.sh Replaced more references to signal with loki and updated CONTRIBUTING.md 2019-04-11 16:56:24 +10:00
Gruntfile.js yarn grunt/ watch for sub-sub folders too 2020-01-03 17:07:40 +11:00
index.html Password lock screen and delete data screen 2020-01-28 16:43:39 +11:00
LICENSE Add GPLv3 LICENSE file (#1309) 2017-10-20 09:36:49 -07:00
LOKI-NOTES.md Linting and other housekeeping stuff 2018-11-01 11:10:30 +11:00
main.js use local shortcut instead of global shortcut 2020-01-31 11:07:40 +11:00
metrics.html add TTL variation in pow metrics 2019-01-15 09:52:24 +11:00
metrics_app.js Linted files 2019-01-16 16:18:08 +11:00
package.json Bump version to 1.0.1 2020-02-10 15:32:50 +11:00
password.html Password lock screen and delete data screen 2020-01-28 16:43:39 +11:00
password_preload.js Password lock screen and delete data screen 2020-01-28 16:43:39 +11:00
permissions_popup.html New media permission, show dialog when not enabled for voice msg 2018-07-03 16:04:21 -07:00
permissions_popup_preload.js Fix permissions popup; add needed function on window (#2554) 2018-07-20 14:01:06 -07:00
preload.js Emoji spacing & message highlight formatting 2020-02-12 14:29:07 +11:00
prepare_beta_build.js Updated all icon references 2020-01-30 14:19:07 +11:00
prepare_import_build.js Use window.log in browser context, turn on console eslint rule 2018-07-21 14:52:43 -07:00
README.md Fix message syncing in closed groups 2020-02-10 19:36:32 +11:00
settings.html Update link preview settings to be cleaner 2019-10-23 14:55:34 +11:00
settings_preload.js Add a toggle option for typing indicators; use short ttl for them 2019-08-06 11:57:45 +10:00
styleguide.config.js Move left pane entirely to React 2019-03-12 17:44:14 -07:00
travis.sh Simplify testing and linting 2018-04-11 16:36:42 -04:00
tsconfig.json fix build 2020-01-21 10:51:32 +11:00
tslint.json update tslint.json to allow use of dangerouslySetInnerHTML in SessionHTMLRenderer 2019-12-16 09:38:34 +11:00
yarn.lock GitHub actions (#814) 2020-02-07 13:20:40 +11:00

Session

Build Status

Session allows for truly decentralized, end to end, and private encrypted chats. Session is built to handle both online and fully Asynchronous offline messages. Session implements the Signal protocol for message encryption. Our Client interface is a fork of Signal Messenger.

Summary

Session integrates directly with Loki Service Nodes, which are a set of distributed, decentralized and Sybil resistant nodes. Service Nodes act as servers which store messages offline, and a set of nodes which allow for onion routing functionality obfuscating users IP Addresses. For a full understanding of how Session works, read the Loki whitepaper.

Offline messages

Offline messaging uses Swarms, given any users public key the user can resolve a public key to a specific grouping of Service Nodes (AKA Swarm) each user in Session belongs to a Swarm. When routing a message offline the user selects a Service node in the destination users Swarm, when the user comes online they query any node in their Swarm, if the Swarm is holding any messages for the user they disseminate those messages to the user.

Swarm Messaging

Spam protections for Session are based on a Proof of Work which is attached to any message that exceeds a default size or Time To Live, this process is discussed further in the Loki whitepaper.

Want to Contribute? Found a Bug or Have a feature request?

Please search for any existing issues that describe your bugs in order to avoid duplicate submissions. Submissions can be made by making a pull request to our development branch, if you don't know where to start contributing , try reading the Github issues page for ideas.

Build instruction

Build instructions can be found in CONTRIBUTING.md.

License

Copyright 2018- Current, Loki Foundation Copyright 2014-2018, Open Whisper Systems Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html