MarsLens (formerly XLog GUI) is a modern, high-performance desktop application for viewing and analyzing Tencent Mars XLog files. Built with Kotlin Compose Multiplatform and a Rust core, it provides a native experience on macOS and Windows with ultra-fast log parsing and decryption capabilities.
- High Performance: Powered by a Rust core for parsing and decrypting
.xlogfiles with blazing speed. - Cross-Platform: Native desktop support for macOS and Windows.
- Modern UI: Clean, Material 3 Design interface with "Deep Slate" dark theme.
- Log Decryption: Support for parsing encrypted logs with private keys.
- Advanced Filtering: Filter logs by level (Verbose to Fatal), tags, and processes.
- Powerful Search: Regex-supported search functionality.
- File Tree: Integrated sidebar for easy navigation of log directories.
- Export: Export filtered logs to standard text formats.
- UI: Compose Multiplatform (Kotlin)
- Core: Rust (via JNI) for performance-critical parsing
- DI: Koin
- Build: Gradle & Cargo
- JDK 17 or higher
- Rust (Cargo) installed (for building the core)
Download Releases
Check the Releases page for the latest .dmg (macOS) or .msi (Windows) installers.
Build from Source
-
Clone the repository
git clone https://github.com/kexuejin/MarsLens.git cd MarsLens -
Build the Rust Core
make # Or manually: # cd rust_core && cargo build --release && cp target/release/libxlog_core.dylib ../composeApp/libs/
-
Run the App
./gradlew :composeApp:run
-
Package for Distribution
./gradlew :composeApp:packageDistributionForCurrentOS
- Open Logs: Click "Open File" or select a file from the sidebar.
- Decrypt: If the log is encrypted, click the Lock icon in the toolbar and enter your private key.
- Filter: Use the dropdown to filter by log level.
- Search: Type in the search bar to find specific keywords (Regex supported).
We welcome contributions! Please see CONTRIBUTING.md for details on how to submit pull requests, report issues, and the code of conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
