Skip to content

Run Slips natively on macOS and Raspberry Pi - #2198

Open
AlyaGomaa wants to merge 1 commit into
developfrom
sebas/feat/native_macos_rpi_runtime
Open

AlyaGomaa wants to merge 1 commit into
developfrom
sebas/feat/native_macos_rpi_runtime

Conversation

@AlyaGomaa

@AlyaGomaa AlyaGomaa commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Sub-PR of #2141: part 1 of 12. The parent PR stays open and unchanged; this PR carries one feature of it so it can be reviewed on its own.

What this PR adds

  • Spawn-safe processes: ModuleProcess and create_process for modules, profiler, evidence handler and input, so Slips starts where fork is not the default (macOS).
  • Queue sizes capped to the platform semaphore limit (SEM_VALUE_MAX).
  • AID worker opens its own database, stops with its parent (worker_lifecycle.py), and a worker of an older run can no longer write into a newer run's Redis (belongs_to_run checks the main PID).
  • Input: stdin flow types with clean shutdown on EOF, nfdump legacy CSV schema, localnet inferred for piped flows.
  • Live network state for Linux and macOS (managers/network_state.py): interface addresses, gateway and DNS are refreshed by HostIPManager and stored in Redis (get_network_state, replace_network_state).
  • Shared helpers used by later sub-PRs: common/mac.py, common/network_context.py, common/slips_own_traffic.py.
  • macOS desktop notifications (mac_notifications.py + Swift helper) and a plain alert text formatter.
  • Output.print no longer blocks when another process holds the terminal lock.
  • Docs: native macOS install guide, Raspberry Pi memory limits. feel_project pointer moved to the commit that ignores .DS_Store.

Where it sits in the split

Notes for review

  • Test setup: conftest.py gives each test a fresh ConfigParser; ModuleFactory refuses a Redis that belongs to a running Slips.
  • .secrets.baseline is updated here once for the whole split, so it lists files that arrive in later parts.
  • develop rewrote tests/unit/slips_files/core/database/test_database.py after the parent branched. The parent's new database tests are appended to develop's version (here and in later parts) and use develop's class-state fixture.
  • develop moved the FAQ out of docs/contributing.md; the parent's FAQ edits are applied to docs/FAQ.md.

Tests

  • Unit suite on this branch (local, pytest tests/unit -n 3): 3405 passed, 2 skipped, 0 failed. Integration tests were not run locally.

@AlyaGomaa AlyaGomaa self-assigned this Nov 10, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Slips Nov 10, 2026
@AlyaGomaa AlyaGomaa added the #2141 sub-PR Part of the split of PR #2141 label Nov 11, 2026
@AlyaGomaa
AlyaGomaa added this pull request to stack #2210 November 11, 2026 11:53
@AlyaGomaa AlyaGomaa moved this from Todo to Working on it in Slips Nov 11, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#2141 sub-PR Part of the split of PR #2141

Projects

Status: Working on it

Development

Successfully merging this pull request may close these issues.

2 participants