Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,22 @@ jobs:
[ -f "$f" ] || continue
grep -q "SPDX-License-Identifier" "$f" || { echo "$f missing SPDX header" ; exit 1; }
done

runtime-build:
name: Runtime / cargo
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain (MSRV per ADR-001)
uses: dtolnay/rust-toolchain@1.75.0
with:
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v2
- name: Build workspace
run: cargo build --workspace --all-targets
- name: Test workspace
run: cargo test --workspace --all-targets
- name: Clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- name: Rustfmt
run: cargo fmt --check --all
102 changes: 102 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2026 PopSolutions Cooperative
#
# Spanker workspace root.
#
# Per ADR-001 — Userspace runtime language (Rust). The workspace
# starts with `spanker-runtime` (this PR); subsequent PRs add
# `spanker-scheduler` (PR #4 distributed scheduler) and
# `ggml-spanker` (PR #3 GGML backend wrapper).

[workspace]
resolver = "2"
members = ["src/runtime"]

[workspace.package]
edition = "2021"
license = "Apache-2.0"
authors = ["PopSolutions Cooperative <popsolutions.co@gmail.com>"]
repository = "https://github.com/popsolutions/Spanker"
rust-version = "1.75"

[workspace.dependencies]
nix = { version = "0.29", default-features = false, features = ["ioctl"] }
thiserror = "2.0"

[profile.release]
lto = "thin"
codegen-units = 1
strip = "debuginfo"
10 changes: 10 additions & 0 deletions rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2026 PopSolutions Cooperative
#
# Pins the Rust toolchain for the Spanker workspace.
# Per ADR-001 — Userspace runtime language (Rust, MSRV 1.75.0).

[toolchain]
channel = "1.75.0"
components = ["clippy", "rustfmt"]
profile = "minimal"
23 changes: 23 additions & 0 deletions src/runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2026 PopSolutions Cooperative

[package]
name = "spanker-runtime"
version = "0.1.0"
description = "Userspace runtime for the PopSolutions Spanker accelerator driver."
keywords = ["accelerator", "ioctl", "popsolutions", "fpga"]
categories = ["hardware-support", "os::linux-apis"]

edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
rust-version.workspace = true

[lib]
name = "spanker_runtime"
path = "src/lib.rs"

[dependencies]
nix = { workspace = true }
thiserror = { workspace = true }
Loading
Loading