Skip to content

Better platform support #1

Description

@v1rtl

Platform support

Desktop / server

  • NetBSD — currently fails due to a native linking dep (getrandom/ring/libp2p crypto wiring). Best-supported remaining BSD.
  • Windows — IPC daemon is supported on Windows 11 (see research comment below: tokio named pipes recommended).

Mobile (client-embedding only, not daemon)

Embedded in an app via FFI (JNI on Android, Swift/C ABI on iOS), using the in-process HoverflyClient model (same as the wasm build, not daemon.rs). Node lifetime = app foreground lifetime (e.g. a browser app whose node runs only while the browser is open). Outbound-only; no IPC daemon, no inbound node (NAT/CGNAT makes a phone node pointless anyway).

  • Android (tier 2, aarch64-linux-android primary) — Linux underneath so #[cfg(unix)] compiles; build via cargo-ndk. A long-lived background node is technically possible (foreground service + REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) but unnecessary and Play-Store-restricted — foreground-lifetime embedding is the right model.
  • iOS (tier 2, Apple Silicon: aarch64-apple-ios + -sim) — daemon-less by hard platform constraint (no persistent background user processes). Foreground-lifetime embedded client only.

Other

  • Raspberry pi already covered by aarch64
  • EFI? (would need a separate no_std implementation)

Shared blocker across BSD/mobile targets

Native deps gate most of these: getrandom (per-OS entropy syscall), rustls via ring (spotty BSD asm), and libp2p crypto (noise/secp256k1). Resolving the rustls/ring backend likely unblocks several targets at once.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions