This repository was archived by the owner on Jun 19, 2026. It is now read-only.
Add Push/Pull streaming model and TypeScript TCP library #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| merge_group: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| rust-clippy: | |
| name: Rust / Clippy | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Clippy (xtask) | |
| run: cargo xtask clippy | |
| rust-fmt: | |
| name: Rust / Format | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo xtask fmt | |
| rust-doc: | |
| name: Rust / Documentation | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build docs (xtask) | |
| run: cargo xtask doc | |
| rust-miri: | |
| name: Rust / Miri | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: miri | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Setup Miri | |
| run: cargo +nightly miri setup | |
| - name: Run Miri (shm-primitives) | |
| run: cargo +nightly miri test -p shm-primitives | |
| # Note: Miri doesn't support all libc calls, so some tests may need to be skipped | |
| continue-on-error: true | |
| rust-loom: | |
| name: Rust / Loom | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run loom tests | |
| run: cargo nextest run -p shm-primitives | |
| env: | |
| RUSTFLAGS: "--cfg loom" | |
| rust-conformance: | |
| name: Conformance / Rust | |
| runs-on: depot-ubuntu-24.04-16 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build subject | |
| run: cargo build -p subject-rust | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "./target/debug/subject-rust" | |
| typescript-conformance: | |
| name: Conformance / TypeScript | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: TypeScript typecheck (tsgo) | |
| run: npx -y @typescript/native-preview -p typescript/tsconfig.json --noEmit | |
| - name: Generate TypeScript bindings | |
| run: cargo xtask codegen --typescript | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "node --experimental-strip-types typescript/subject/subject.ts" | |
| swift-conformance: | |
| name: Conformance / Swift | |
| runs-on: depot-macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build subject | |
| run: swift build --package-path swift/subject | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "sh swift/subject/subject-swift.sh" | |
| go-conformance: | |
| name: Conformance / Go | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go/go.mod | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build subject | |
| run: cd go && go build -o subject/subject-go ./subject | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "./go/subject/subject-go" | |
| java-conformance: | |
| name: Conformance / Java | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '25' | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build subject | |
| run: sh java/subject/build.sh | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "sh java/subject/subject-java.sh" | |
| python-conformance: | |
| name: Conformance / Python | |
| runs-on: depot-ubuntu-24.04-4 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@nextest | |
| - name: Cache cargo | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run spec tests | |
| run: cargo nextest run -p spec-tests | |
| env: | |
| SUBJECT_CMD: "python3 python/subject/subject.py" |