Skip to content

Commit 9da27d2

Browse files
author
James Gober
committed
Initial scaffold: cargo crate, README, REPS, CI, .dev planning
0 parents  commit 9da27d2

17 files changed

Lines changed: 563 additions & 0 deletions

File tree

.editorconfig

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 4
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = false
9+
insert_final_newline = false
10+
11+
[*.proj]
12+
root = true
13+
charset = utf-8
14+
trim_trailing_whitespace = true
15+
insert_final_newline = true
16+
17+
# NOML files ++
18+
[*.noml]
19+
indent_style = space
20+
indent_size = 2

.github/workflows/ci.yml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
test:
14+
name: Test (${{ matrix.os }})
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
os: [ubuntu-latest, macos-latest, windows-latest]
20+
steps:
21+
- uses: actions/checkout@v5
22+
- uses: dtolnay/rust-toolchain@stable
23+
- uses: Swatinem/rust-cache@v2
24+
25+
- name: Build (default features)
26+
run: cargo build --verbose
27+
- name: Test (default features)
28+
run: cargo test --verbose
29+
30+
- name: Build (no default features)
31+
run: cargo build --no-default-features --verbose
32+
33+
- name: Build (all features)
34+
run: cargo build --all-features --verbose
35+
- name: Test (all features)
36+
run: cargo test --all-features --verbose
37+
38+
clippy:
39+
name: Clippy
40+
runs-on: ubuntu-latest
41+
steps:
42+
- uses: actions/checkout@v5
43+
- uses: dtolnay/rust-toolchain@stable
44+
with:
45+
components: clippy
46+
- uses: Swatinem/rust-cache@v2
47+
- name: Clippy (all features)
48+
run: cargo clippy --all-targets --all-features -- -D warnings
49+
- name: Clippy (no default features)
50+
run: cargo clippy --all-targets --no-default-features -- -D warnings
51+
52+
fmt:
53+
name: Rustfmt
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: actions/checkout@v5
57+
- uses: dtolnay/rust-toolchain@stable
58+
with:
59+
components: rustfmt
60+
- run: cargo fmt --all -- --check
61+
62+
docs:
63+
name: Doc build
64+
runs-on: ubuntu-latest
65+
env:
66+
RUSTDOCFLAGS: "-D warnings"
67+
steps:
68+
- uses: actions/checkout@v5
69+
- uses: dtolnay/rust-toolchain@stable
70+
- uses: Swatinem/rust-cache@v2
71+
- run: cargo doc --all-features --no-deps
72+
73+
msrv:
74+
name: MSRV (Rust 1.75)
75+
runs-on: ubuntu-latest
76+
steps:
77+
- uses: actions/checkout@v5
78+
- uses: dtolnay/rust-toolchain@1.75
79+
- uses: Swatinem/rust-cache@v2
80+
- run: cargo build --all-features --verbose

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Development
2+
/dev
3+
/.dev
4+
DIRECTIVE.md
5+
DIRECTIVES.md
6+
PLANNING.md
7+
8+
# Rust/Cargo Build Artifacts
9+
/target/
10+
**/*.rs.bk
11+
12+
# Dependencies
13+
/node_modules/
14+
/vendor/
15+
16+
# Editor & OS Junk
17+
/.vscode
18+
.DS_Store
19+
.Spotlight-V100
20+
.Trash-*
21+
.Trashes
22+
.directory
23+
.LSOverride
24+
.AppleDouble
25+
Desktop.ini
26+
ehthumbs.db
27+
Thumbs.db
28+
$RECYCLE.BIN/
29+
30+
# Environment & Secrets
31+
.env
32+
/config/
33+
storage/*.key
34+
Homestead.yaml
35+
Homestead.json
36+
/config.json
37+
38+
# Sublime Text & Other IDEs
39+
*.tmlanguage.cache
40+
*.tmPreferences.cache
41+
*.stTheme.cache
42+
*.sublime-workspace
43+
*.sublime-project
44+
._*

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented here. The format is
4+
based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
5+
the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [Unreleased]
8+
9+
## [0.1.0] - 2026-05-12
10+
11+
### Added
12+
13+
- Initial repository scaffold.
14+
- Apache-2.0 license, README, REPS specification stub, CI workflow,
15+
`.dev/` planning structure (DIRECTIVES, ROADMAP, PROMPTS).
16+
- Crate name reserved on crates.io.
17+
18+
[Unreleased]: https://github.com/jamesgober/pipe-io/compare/v0.1.0...HEAD
19+
[0.1.0]: https://github.com/jamesgober/pipe-io/releases/tag/v0.1.0

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
[package]
2+
name = "pipe-io"
3+
version = "0.1.0"
4+
edition = "2021"
5+
rust-version = "1.75"
6+
readme = "README.md"
7+
license = "Apache-2.0"
8+
9+
authors = [
10+
"James Gober <me@jamesgober.com>"
11+
]
12+
13+
description = "Typed source-transform-sink pipelines with backpressure, batching, windowing, and per-stage error isolation. A lightweight runtime-agnostic stream processor for in-process workloads. The missing middle ground between raw iterators and full distributed stream processing."
14+
15+
keywords = [
16+
"pipeline",
17+
"stream",
18+
"backpressure",
19+
"etl",
20+
"io"
21+
]
22+
23+
categories = [
24+
"asynchronous",
25+
"data-structures",
26+
"concurrency"
27+
]
28+
29+
documentation = "https://docs.rs/pipe-io"
30+
repository = "https://github.com/jamesgober/pipe-io"
31+
homepage = "https://github.com/jamesgober/pipe-io"
32+
33+
[package.metadata.docs.rs]
34+
all-features = true
35+
rustdoc-args = ["--cfg", "docsrs"]
36+
37+
[dependencies]
38+
39+
[dev-dependencies]
40+
41+
[features]
42+
default = ["std"]
43+
std = []
44+
45+
[profile.release]
46+
opt-level = 3
47+
lto = "thin"

0 commit comments

Comments
 (0)