Methodology

How OSSPath is built

Everything in OSSPath was added by a human. This page explains what that means in practice — what gets included, how it gets classified, how often it is re-verified, and how to report a mistake.

Principles
Curation over aggregation

No entries are added automatically. Each job, funding program, and organization is reviewed and added individually. Repository metadata — stars, topics, and dependency data — is fetched from the GitHub API, but inclusion decisions are made by hand. The corpus stays small on purpose.

Accuracy over coverage

A smaller set of accurate, current entries is more useful than a larger set that includes stale or misclassified ones. When coverage and accuracy conflict, accuracy wins. Entries are removed when they can no longer be verified.

Human review

Each entry is checked against the inclusion criteria before it appears. New entries are not added automatically. The value of the corpus depends on this not changing.

Public corrections

The underlying data is open source. Mistakes can be seen, reported, and fixed in public. Review intervals and inclusion criteria are documented so that readers can evaluate the freshness of any given entry.

Inclusion criteria

Each entity type has its own criteria. All of the following must be true for an entry to be included — not some.

Jobs
Rust is explicitly named in the job description (not inferred from company reputation)
Remote work is confirmed by the company (not 'remote-friendly' ambiguity)
The posting is currently active and accessible
Rust is used in production, not experimentally
Roles where Rust is one of several acceptable languages
In-office or relocation-required roles
Recruiting agency or third-party board listings
Companies where Rust usage is inferred rather than documented
Repositories
Actively maintained — recent commit activity in the last 90 days
Maintainer engages with issues and pull requests
A realistic path exists for new contributors to make a meaningful contribution
The project is Rust-primary or Rust-significant
Abandoned or archived projects
Projects where the maintainer does not welcome outside contributions
Funding programs
Currently accepting applications or has a defined recurring cycle
Explicitly supports Rust ecosystem work
The application process is publicly documented
General open-source grants with no Rust focus
Programs that have been closed for more than one year without a stated reopening
Companies and organizations
Rust usage in production is publicly documented — blog posts, conference talks, or open-source output
Usage is in a core product, not only in internal tooling
Organization profile pages require meaningful public Rust repositories
Companies where Rust usage is inferred from job postings alone
Companies that adopted Rust experimentally and switched away
Companies using Rust only in non-strategic internal tools
Community resources
Covers the Rust ecosystem specifically (not general programming with occasional Rust mention)
Actively maintained — newsletter publishing, forum moderation, or regular episode output
Non-trivial signal-to-noise ratio
Generic programming newsletters that mention Rust occasionally
Inactive or unmaintained forums and communities
Entity types

OSSPath currently tracks seven entity types. Each has its own archive page, inclusion criteria, and review cadence.

  • RepositoriesOpen-source Rust projects from GitHub, indexed by stars, activity, license, and dependency graph.
  • OrganizationsCompanies and teams with a public GitHub presence and meaningful Rust open-source output.
  • Funding programsGrants, fellowships, and sponsorships from the Rust Foundation, NLnet, Sovereign Tech Fund, and others.
  • FundersThe foundations and institutions that run funding programs.
  • JobsRemote Rust engineering roles, manually reviewed.
  • CommunityNewsletters, forums, podcasts, and working-group channels.
  • EcosystemsDomain groupings derived from dependency graph analysis — 11 domains currently tracked.

Dependency pages (/deps) and topic pages (/topics) are derived views over the repository corpus rather than independently curated entity types. Events are tracked separately at /events.

Data collection
Sources
  • GitHub — repository metadata (stars, topics, activity, Cargo.toml dependencies), organization membership
  • Company careers pages — reviewed directly for job listings
  • Grant program websites — reviewed directly for funding status and application windows
  • Conference and event sites — reviewed for dates and registration links
Review process

New entries are reviewed against the inclusion criteria before being added. Existing entries are re-verified on a rolling schedule:

Jobsevery 7 days
Grants & eventsevery 14 days
Repositoriesevery 30 days
Companies & communityevery 60 days
Classification

Repository ecosystem tags are derived from Cargo.toml dependency data collected during corpus refresh. GitHub topic tags and organization owner signals are used as supplementary inputs. No LLM or AI classification is used.

Ecosystem classification

Repositories are classified into one of eleven domain ecosystems:

Bevy Game EngineTauri DesktopBlockchainEmbedded / no_stdAI & Machine LearningWebAssemblyDatabasegRPC & NetworkingCLI & TUIWeb & APIsAsync / Tokio
How a tag is assigned

Each ecosystem has a rule consisting of a set of specific crate names. If a repository's dependency list contains any of those crates, the rule matches — this is an inclusive OR within each rule. For blockchain repositories, the GitHub organization owner and repository topic tags are also considered when dependency data is absent or ambiguous.

Why a repository can appear in multiple ecosystems

Rules run in specificity order, and a repository receives up to two matching tags. A repository that builds a command-line tool over an HTTP API will match both CLI & TUI and Web & APIs. This is intentional — the repository is genuinely relevant to both views, and excluding it from one would be arbitrary. Ecosystem pages are therefore overlapping, not partitioned.

What is not classified

Repositories with no dependency data and no topic or owner signals receive no ecosystem tag and do not appear on any ecosystem page. They remain discoverable through the repository archive and topic/dependency pages.

Corrections

Stale data is inevitable in a manually maintained corpus. Job postings expire, repositories get archived, funding programs close, and organizations change focus.

To report an error, open a GitHub issue or use the contact page. Include the URL of the incorrect entry and what the correct state should be. Pull requests with direct data corrections are also accepted.

There is no automated correction queue. Each report is reviewed and applied manually, typically within a few days.

Open an issue →
Open source

The full dataset, classification rules, and site code are public. The corpus can be inspected, the rules can be read, and the methodology described here can be verified against the source.