Skip to content

Linux Port: Request for meter-core-rs guidance to enable live DPS meter #196

@multiheros

Description

@multiheros

Summary

I've been working on a Linux port of LOA Logs and have successfully compiled and run the application on CachyOS (Arch-based, kernel 6.18.13-2-cachyos-lts). The app works perfectly as a log viewer — all UI, database, charts, settings, tray, and log browsing features are fully functional.

However, the live DPS meter (real-time packet capture) is currently unavailable because it depends on meter-core-rs, which is a private repository.

What's been done

The Linux port is available at multiheros/loa-logs (linux-port branch). Here's what was needed to get it compiling and running:

  • Disabled meter-core dependency (optional feature, already behind #[cfg(feature = "meter-core")])
  • Added #[cfg(target_os = "windows")] guards for window-vibrancy blur/clear (not supported on Linux)
  • Fixed dirs::app_data_dir()dirs::data_dir() for proper XDG path resolution
  • Fixed auto-launch linux module (missing anyhow::Result import, &str borrow issue)
  • Removed common-controls-v6 feature from rfd (Windows-only)
  • Added automatic WebKitGTK Wayland compatibility env vars (WEBKIT_DISABLE_DMABUF_RENDERER, GDK_BACKEND)
  • Cleaned up Cargo.lock removing Windows-only transitive dependencies

All changes use conditional compilation (#[cfg(target_os)]), so nothing breaks on Windows.

The blocker: live meter on Linux

The only missing piece is the live DPS meter. On Windows, this relies on:

  1. WinDivert — kernel driver for packet interception (Windows-only)
  2. meter-core-rs — packet parsing and decryption logic (private repository)

On Linux, packet capture itself is straightforward via libpcap or AF_PACKET sockets (no special drivers needed, just CAP_NET_RAW capability). The real blocker is the packet parsing and decryption logic inside meter-core-rs.

Request

I understand the encryption/decryption code is kept private for security reasons. However, I'd like to ask if any of the following would be possible:

  1. Abstract the capture layer: If meter-core-rs could expose a trait/interface for the packet capture backend (separating capture from parsing), a Linux implementation using libpcap could be plugged in without exposing any decryption logic.

  2. Provide a pre-compiled Linux binary/library: A .so shared library of meter-core-rs compiled for Linux x86_64 would allow the live meter to work without exposing source code.

  3. Any guidance on the architecture: Even a high-level overview of how meter-core-rs interfaces with the rest of the app (the start_capture function signature, packet flow, etc.) would help understand what's needed.

Lost Ark runs on Linux via Steam Proton, and there's a growing community of Linux players who would benefit from having the DPS meter available natively.

Environment

  • OS: CachyOS (Arch-based), kernel 6.18.13-2-cachyos-lts
  • Rust: 1.93.1
  • Node: 25.6.1
  • Tauri: 2.9.5
  • Display: Wayland (with XWayland fallback for WebKitGTK)

Thank you for the amazing work on LOA Logs! Happy to contribute the Linux port changes back via PR if there's interest.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions