zeekay d110239a2f Update README for Lux Messenger branding
- Document current integration status with libsession-util
- Add architecture overview and build instructions
- Link to related Lux repositories
- Document planned approach for network configuration
2026-01-29 11:14:45 -08:00
2025-12-08 15:45:01 +11:00
2025-12-15 14:34:27 +11:00
2026-01-19 10:36:19 +11:00
2025-12-01 15:18:55 +11:00
2025-03-26 14:22:50 +11:00
2021-06-01 17:17:52 +10:00
…

Lux Messenger iOS

Private messaging on the Lux Network - A fork of Session iOS

Overview

Lux Messenger iOS is a fork of Session iOS, intended to connect to the Lux Network's SessionVM instead of the Oxen network. This app provides end-to-end encrypted messaging with post-quantum cryptographic protection.

Current Status

Integration Status: In Progress

The iOS app currently uses libsession-util for networking, which has hardcoded network endpoints. Full integration with the Lux SessionVM requires modifications to the underlying C++ library.

What Works

  • Building and running the app
  • Core messaging functionality (against Session mainnet)

What Needs Work

  • Network configuration to connect to Lux SessionVM
  • libsession-util modifications for custom network support
  • Branding updates (Lux Messenger)

Building

Prerequisites

  • Xcode 15.0+
  • iOS 15.0+ deployment target
  • CocoaPods

Build Steps

  1. Clone the repository:
git clone https://github.com/lux-tel/session-ios
cd session-ios
  1. Install dependencies:
pod install
  1. Open the workspace:
open Session.xcworkspace
  1. Build and run in Xcode.

Architecture

Session (iOS App)
├── SessionMessagingKit    # Message handling, encryption
├── SessionNetworkingKit   # Network layer (uses LibSession)
├── SessionUtilitiesKit    # Shared utilities
└── SessionUIKit           # UI components

SessionNetworkingKit
└── LibSession+Networking.swift
    └── libsession-util (C++ native library)
        └── Hardcoded network endpoints

Configuration for Lux Network

Current Limitation

The network configuration in iOS is handled by libsession-util, a C++ library with hardcoded endpoints:

// In libsession-util/src/session_network.cpp
constexpr auto file_server = "filev2.getsession.org"sv;

Planned Approach

To enable Lux network connectivity:

  1. Modify libsession-util (lux-tel/libsession-util)

    • Add environment-based configuration
    • Support custom seed node URLs
    • Support custom file server URLs
  2. Update iOS integration

    • Pass Lux network configuration to LibSession
    • Update UI branding
Repository Description
luxfi/session Go SessionVM + API layer
luxcpp/session C++ storage server
lux-tel/libsession-util Native library (needs modification)
lux-tel/session-desktop Desktop client (configured)
lux-tel/session-android Android client

Development

Key Files

File Description
SessionNetworkingKit/SessionNetwork/SessionNetwork.swift Network API server config
SessionNetworkingKit/LibSession/LibSession+Networking.swift LibSession integration
SessionUtilitiesKit/General/Feature.swift Feature flags
Session/Meta/SessionApp.swift App entry point

Debug Configuration

Feature flags can be enabled in developer settings for debugging:

  • forceOffline - Test offline behavior
  • truncatePubkeysInLogs - Privacy in debug logs

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

GPL-3.0 - Same as upstream Session iOS

Upstream

This project is a fork of Session iOS by the Session Technology Foundation.

S
Description
Session iOS - A Decentralized, Onion Routed, Private Messenger
Readme
275 MiB
Languages
Swift 99.1%
Python 0.4%
Shell 0.3%
Objective-C 0.2%