Skip to content

Commit 6240c76

Browse files
committed
initial commit
0 parents  commit 6240c76

65 files changed

Lines changed: 5385 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
8+
env:
9+
CARGO_TERM_COLOR: always
10+
RUSTFLAGS: "-D warnings"
11+
12+
jobs:
13+
linux:
14+
name: linux / pipewire
15+
runs-on: ubuntu-latest
16+
container:
17+
image: fedora:41
18+
steps:
19+
- uses: actions/checkout@v4
20+
- name: Install build deps
21+
run: |
22+
dnf install -y \
23+
gcc gcc-c++ make pkg-config \
24+
pipewire-devel clang-devel \
25+
rust cargo
26+
- name: cargo build
27+
run: cargo build --workspace --all-targets
28+
- name: cargo test
29+
run: cargo test --workspace
30+
- name: cargo fmt --check
31+
run: cargo fmt --all -- --check
32+
continue-on-error: true
33+
- name: cargo clippy
34+
run: cargo clippy --workspace --all-targets -- -D warnings
35+
continue-on-error: true
36+
37+
macos:
38+
name: macos / coreaudio
39+
runs-on: macos-latest
40+
steps:
41+
- uses: actions/checkout@v4
42+
- uses: dtolnay/rust-toolchain@stable
43+
- name: cargo build (excluding linux-only crate)
44+
run: |
45+
cargo build --workspace --all-targets \
46+
--exclude soundworm-pipewire
47+
- name: cargo test (excluding linux-only crate)
48+
run: |
49+
cargo test --workspace \
50+
--exclude soundworm-pipewire
51+
52+
windows:
53+
name: windows / wasapi (stub)
54+
runs-on: windows-latest
55+
steps:
56+
- uses: actions/checkout@v4
57+
- uses: dtolnay/rust-toolchain@stable
58+
# Windows excludes the unix backends *and* the daemon/CLI — their
59+
# IPC transport is unix-socket-only. Named-pipe support lands with
60+
# WASAPI in v0.6. The IPC wire types and other portable crates
61+
# still build here so we catch regressions early.
62+
- name: cargo build (portable crates only)
63+
run: |
64+
cargo build --workspace --all-targets `
65+
--exclude soundworm-pipewire `
66+
--exclude soundworm-coreaudio `
67+
--exclude soundworm-daemon `
68+
--exclude soundworm-cli
69+
- name: cargo test (portable crates only)
70+
run: |
71+
cargo test --workspace `
72+
--exclude soundworm-pipewire `
73+
--exclude soundworm-coreaudio `
74+
--exclude soundworm-daemon `
75+
--exclude soundworm-cli

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/target
2+
Cargo.lock
3+
*.swp
4+
*.swo
5+
.env
6+
.DS_Store

Cargo.toml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[workspace]
2+
members = [
3+
"crates/core",
4+
"crates/graph",
5+
"crates/policy",
6+
"crates/pipewire-backend",
7+
"crates/coreaudio-backend",
8+
"crates/wasapi-backend",
9+
"crates/rhai-engine",
10+
"crates/snapshots",
11+
"crates/observability",
12+
"crates/ipc",
13+
"crates/cli",
14+
"crates/daemon",
15+
]
16+
resolver = "2"
17+
18+
[workspace.dependencies]
19+
tokio = { version = "1", features = ["full"] }
20+
serde = { version = "1", features = ["derive"] }
21+
serde_json = "1"
22+
toml = "0.8"
23+
rhai = { version = "1", features = ["sync"] }
24+
notify = "6"
25+
hdrhistogram = { version = "7", default-features = false }
26+
tracing = "0.1"
27+
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
28+
anyhow = "1"
29+
thiserror = "1"
30+
async-trait = "0.1"

0 commit comments

Comments
 (0)