Skip to content

Native Session instant messenger client for macOS written in Swift with session.js

Notifications You must be signed in to change notification settings

VityaSchel/session-native

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Session Native

Session Native is Session messenger by OXEN open-source client written with performance, design and user experience in mind. It uses native Swift and other native technologies of macOS and aims to run with latest technologies rather to be compatible with all devices, thus it requires at least macOS 14.0 or later.

session native screenshot

Getting started

  • Download Session Native app from App Store (waiting for someone to donate me 100$)
  • Or download redistributable app package from releases
  • Or compile yourself, see CONTRIBUTING.md

Caveats

  • Session isn't entirely native, as its backend is written with my Session.js crossplatform Session framework. It doesn't matter though, because frontend must be reactive and backend can be anything. You won't experience any lags, because data is stored/retrieved using native SwiftData. Moreover, Session.js is written in Bun, which is very fast and comparable to Rust or even low-level languages.
  • No onion routing for now, but you can setup onion routing on your network side yourself, also proxy settings are available
  • While macOS protects applications data good enough, please be aware that app database is not encrypted, and thus can be accessed if malware has unrestricted access to your filesystem and you allowed it to read apps storage. Mnemonics are stored in keychain, which should make their retrieval harder for malicious actors.
  • After you log out, only your mnemonic is deleted from device, your messages are still there in the database, unencrypted, thanks to Apple who managed to fuck up swiftdata enough to make it impossible to delete related objects without crashing the app. If you want to completely nuke all data quickly, click on "settings" icon in navbar with "options" key pressed, which should bring developer section in settings, where you can find "Clear all data" button which effectively clears absolutely everything about this app.

List of things that I won't add/fix in Session Native

Abandoned because I spent 5+ hours on each and didn't succeed.

About

Native Session instant messenger client for macOS written in Swift with session.js

Resources

Stars

Watchers

Forks