wingfoil-io/wingfoil - Open Source PR Review Scorecard

ultra low latency graph based stream processing framework

C-Rank Grade: A (Welcoming) - 70/100

External PR Merge Rate: 84%

Response Time: 17h

First Timer Success: 100%

Frequently Asked Questions

Is wingfoil-io/wingfoil welcoming to first-time open-source contributors?

wingfoil-io/wingfoil has a recorded first-timer success rate of 100.0%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in wingfoil-io/wingfoil respond to incoming external pull requests in approximately 17.4 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 69.9 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 69.9 places wingfoil-io/wingfoil in the A tier.

What is the external contributor pull request merge rate for wingfoil-io/wingfoil?

The external contributor pull request merge rate for wingfoil-io/wingfoil is 83.9%, based on public PR activity from non-core contributors.

Are there Good First Issues available in wingfoil-io/wingfoil?

wingfoil-io/wingfoil currently has 2 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

wingfoil-io
wingfoil-io/wingfoilA•Welcoming228
GitHub
Back to Explorer
wingfoil-io

wingfoil-io/wingfoil

228
InactiveA•Welcoming(70/100)Rust

ultra low latency graph based stream processing framework

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Welcoming Community Builder

Warmth Score
8.3/10
Patience Score
8.4/10
Nitpick Rate
40%

Highly welcoming maintainers in wingfoil-io/wingfoil. Prompt code reviews with positive guidance for new contributors.

Top PR Submission Do's

  • •Ensure code complies with the project coding style
  • •Keep PRs scoped to a single concern
  • •Include context and link to the related issue

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit PRs without linking an issue
  • •Do not break existing tests without fixing them
  • •Do not mix unrelated refactors in a single PR
Response Velocity
17 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
83.9%
High acceptance rate for external PRs

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
100.0%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
6 core
Highly collaborative maintainer core
Diagnostic Health HUD
83.9%
Merge Gauge
100.0%
1st-Timer
Community Vibe81/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for wingfoil-io/wingfoil
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/wingfoil-io/wingfoil)](https://getmerged.abhishekco.de/wingfoil-io/wingfoil?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

scripts/setup-dev.sh installs protoc and nothing else. But anyone who runs cargo lint-all, cargo test -p wingfoil --all-features, or touches the Aeron adapter also needs clang, libclang-dev, uuid-dev, libbsd-dev and CMake ≥ 3.30. Those instructions currently exist only as a copy-paste block in CLAUDE.md ("Aeron adapter system dependencies"), which means a contributor typically discovers them the expensive way: a long, apparently successful build that ends at link time with rust-lld: error: unable to find library -lbsd libbsd-dev is the one that is easy to miss, because nothing fails until then and only on an --all-features target. CMake fails differently and just as late — the vendored rusteron-media-driver Aeron sources set a 3.30 floor in their own cmake_minimum_required, so the 3.28 that ships on many distros aborts the build script with CMake 3.30 or higher is required. Where to start Teach setup-dev.sh a second mode — a flag or a positional argument, e.g. scripts/setup-dev.

📅 Opened Aug 29, 2026💬 1 comment
Quality: 50/100Contribute

StreamOps::timed (crates/wingfoil/src/fluent.rs, next to print) passes each value through unchanged and prints a performance summary at the end of the run. It is not exposed in Python — grep -rn '\btimed\b' crates/wingfoil-python/src finds only unrelated hits. Its neighbour print is bound, and the two are the same shape, so this is a small, well-modelled first contribution to the Python crate. Where to start PyStream::print in crates/wingfoil-python/src/graph.rs (~line 662) is the model. The binding is one line over the erased PyElement edge plus rustdoc: pub fn timed(&self) -> PyStream { self.wrap(self.stream.timed()) } Check the bound before assuming it compiles: timed wants T: Clone + Default + 'static and PyElement satisfies that (print additionally needs Debug and gets it). If it does not compile, say so on the issue rather than working around it — that would be a real finding about the erased edge. The recipe for the Python step is /new-op §7 (.claude/commands/new-op.md)

📅 Opened Aug 29, 2026💬 0 comments
Quality: 75/100Contribute

Third and last of the doctest issues (see the value-transform and rate/window ones). crates/wingfoil/src/fluent.rs documents ~90 public methods and only 7 carry a runnable example. The multi-input combinators are the ones where prose alone genuinely cannot settle the question — which input ticks the output, what the passive variant holds, who wins a same-instant tie. Every one of those is a two-line assert. Scope On StreamOps, in crates/wingfoil/src/fluent.rs: join, join3, try_join, try_join3 join_passive, try_join_passive merge, merge_all sample, filter Partial PRs are welcome — one method is a valid PR. Where to start Copy the filter_map example in the doc block immediately above fn filter_map in fluent.rs. What each family should actually demonstrate: join vs join_passive — the whole point is the difference. join ticks when either input ticks; join_passive ticks only with the active one and reads the other's held value. One example each, wired over the same two streams, mak

📅 Opened Aug 29, 2026💬 2 comments
Quality: 60/100Contribute

Companion to the value-transform doctest issue. crates/wingfoil/src/fluent.rs documents ~90 public methods and only 7 carry a runnable example, so most of the combinator reference on docs.rs is a sentence and a signature. These particular combinators are the ones most often misread from a one-line description — leading vs. trailing edge, whether the value is dropped or held, whether the node ticks or stays silent — so an example is worth more here than anywhere else. Scope On StreamOps, in crates/wingfoil/src/fluent.rs: audit, window, buffer limit, skip, step_by skip_while, take_while delay throttle is deliberately not on this list — its contract wording is #929, and the example belongs in that PR alongside the prose. Partial PRs are welcome — one method is a valid PR. Where to start Copy the filter_map example in the doc block immediately above fn filter_map in fluent.rs; it is the house shape. Two of these need more care than a copy: delay is the one that demonstrates Tick

📅 Opened Aug 29, 2026💬 1 comment
Quality: 60/100Contribute

crates/wingfoil/src/fluent.rs documents ~90 public methods and only 7 of them carry a runnable example — grep -c '/// ```' crates/wingfoil/src/fluent.rs returns 14 fence lines. docs.rs is where a new user lands first, and for almost every combinator it currently shows a one-line sentence and a signature. This is the cheapest possible improvement to the front door, and it is already gated: cargo test --doc -p wingfoil --all-features runs every fence, so a wrong example fails CI rather than rotting. Scope The value-transform group on StreamOps, in crates/wingfoil/src/fluent.rs: map, try_map, map_filter with_time, ticked_at, ticked_at_elapsed difference, pairwise, enumerate Sibling issues cover the rate/window group and the join/merge group. Partial PRs are welcome — one method is a valid PR. Where to start Copy the existing filter_map example, in the doc block immediately above fn filter_map in fluent.rs. It is the house shape and it is 14 lines: build a graph, drive it from ticker

📅 Opened Aug 29, 2026💬 2 comments
Quality: 60/100Contribute
Looking for more Rust beginner tasks?Explore Rust GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for wingfoil-io/wingfoil

When evaluating whether to contribute to wingfoil-io/wingfoil, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of wingfoil-io/wingfoil acknowledge new external contributions in approximately 17 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 83.9% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to wingfoil-io/wingfoil

01

Is wingfoil-io/wingfoil welcoming to first-time open-source contributors?

wingfoil-io/wingfoil has a recorded first-timer success rate of 100.0%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~17 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 69.9 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 69.9 places wingfoil-io/wingfoil in the Welcoming tier.

04

What is the external contributor pull request merge rate for wingfoil-io/wingfoil?

The external pull request merge rate is 83.9%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in wingfoil-io/wingfoil?

Yes, wingfoil-io/wingfoil currently has 2 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for wingfoil-io/wingfoil are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.