Add your description here
Project description
OSS Sustain Guard
Multi-language package sustainability analyzer - Evaluate your dependencies' health with 21 metrics including Contributor Redundancy, Maintainer Retention, and Security Signals.
✨ Globally Distributed Cache - Instant results via Cloudflare KV with local fallback caching.
📌 Quick Notes:
- Instant results - Popular packages served from global Cloudflare KV cache (no API calls needed)
- SSL verification - Use
--insecureflag to disable SSL verification for development/testing only- Package resolution - If a package cannot be resolved to a GitHub repository, it will be skipped with a notification
- Full documentation - https://onukura.github.io/oss-sustain-guard/
💡 Project Philosophy
OSS Sustain Guard is designed to spark thoughtful conversations about open-source sustainability, not to pass judgment on projects. Our mission is to raise awareness about the challenges maintainers face and encourage the community to think together about how we can better support the open-source ecosystem.
We believe that:
- 🌱 Sustainability matters - Open-source projects need ongoing support to thrive
- 🤝 Community support is essential - For community-driven projects, we highlight funding opportunities to help users give back
- 📊 Transparency helps everyone - By providing objective metrics, we help maintainers and users make informed decisions
- 🎯 Respectful evaluation - We distinguish between corporate-backed and community-driven projects, recognizing their different sustainability models
- 💝 Supporting maintainers - When available, we display funding links for community projects to encourage direct support
This tool is meant to be a conversation starter about OSS sustainability, not a judgment. Every project has unique circumstances, and metrics are just one part of the story.
🎯 Key Features
- 21 Sustainability Metrics - Comprehensive evaluation across maintainer health, development activity, community engagement, project maturity, and security
- Optional Dependents Analysis - Downstream dependency metrics (informational, not affecting total score)
- 5 CHAOSS-Aligned Models - Risk, Sustainability, Community Engagement, Project Maturity, and Contributor Experience
- Category-Weighted Scoring - Balanced 0-100 scale evaluation across 5 key sustainability dimensions
- Multi-Language Support - Python, JavaScript, Go, Rust, PHP, Java, Kotlin, C#, Ruby
- Time Series Analysis - Track package health trends over time, compare snapshots, generate reports
- Community Support Awareness - Displays funding links for community-driven projects
- Globally Distributed Cache - Cloudflare KV-based data delivery with local user cache fallback
- CI/CD Integration - GitHub Actions, Pre-commit hooks
- Zero Configuration - Works out of the box
🚀 Quick Start
# Install
pip install oss-sustain-guard
# Check a single package
oss-guard check requests
# Check multiple packages (auto-detect language)
oss-guard check django flask numpy
# Multi-language support
oss-guard check python:requests npm:react rust:tokio
# Auto-detect from manifest files
oss-guard check --include-lock
# Scan recursively (great for monorepos)
oss-guard check --recursive
📚 Documentation
For detailed usage, configuration, and features, see our documentation site:
- Getting Started - Installation and basic usage
- Scoring Profiles - Different evaluation perspectives
- Trend Analysis - Track package health over time
- GitHub Actions Integration - CI/CD setup
- Pre-Commit Hooks - Automated checks
- Exclude Packages - Configuration
- FAQ - Common questions
Supported Ecosystems
Python, JavaScript, Go, Rust, PHP, Java, Kotlin, C#, Ruby
See Getting Started for ecosystem-specific syntax.
21 Sustainability Metrics
Evaluated across 5 categories:
- Maintainer Health (25%) - Contributor diversity and retention
- Development Activity (20%) - Release rhythm and recent activity
- Community Engagement (20%) - Issue/PR responsiveness
- Project Maturity (15%) - Documentation and governance
- Security & Funding (20%) - Security posture and sustainability
Score interpretation: 80-100 (Healthy) | 50-79 (Monitor) | 0-49 (Needs Attention)
See Database Schema for complete metric details.
Special Features
-
🎁 Gratitude Vending Machine - Discover community projects that need support
oss-guard gratitude --top 5
-
📊 Trend Analysis - Track package health evolution
oss-guard trend requests oss-guard compare requests 2025-12-11 2025-12-12
-
💝 Community Funding Links - Auto-displays funding options for community-driven projects
See Trend Analysis Guide for details.
🤝 Contributing
See CONTRIBUTING.md for development setup, testing, code style, and architecture documentation.
📝 Documentation
- Scoring Profiles Guide - Different evaluation perspectives
- Trend Analysis Guide - Time series analysis and historical comparison
- Database Schema - JSON database format
- Pre-Commit Integration - Hook configuration
- GitHub Actions Guide - CI/CD setup
- Exclude Packages Guide - Package filtering
📄 License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oss_sustain_guard-0.7.0.tar.gz.
File metadata
- Download URL: oss_sustain_guard-0.7.0.tar.gz
- Upload date:
- Size: 363.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d770ea9e76455e537a375661c38a6fce9fa0402926dc8b69e691a2ae8785fe01
|
|
| MD5 |
6420e7063ba948c42577fcfee7078a49
|
|
| BLAKE2b-256 |
fbcab8cb3ebd4f5c3ec890ab8bcec9f3a3fb76a190776a6ce895cb90acded9bf
|
Provenance
The following attestation bundles were made for oss_sustain_guard-0.7.0.tar.gz:
Publisher:
publish.yml on onukura/oss-sustain-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oss_sustain_guard-0.7.0.tar.gz -
Subject digest:
d770ea9e76455e537a375661c38a6fce9fa0402926dc8b69e691a2ae8785fe01 - Sigstore transparency entry: 773804871
- Sigstore integration time:
-
Permalink:
onukura/oss-sustain-guard@2940ffc48088c99bdd9c1a18c451ff2e078d1a9a -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/onukura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2940ffc48088c99bdd9c1a18c451ff2e078d1a9a -
Trigger Event:
push
-
Statement type:
File details
Details for the file oss_sustain_guard-0.7.0-py3-none-any.whl.
File metadata
- Download URL: oss_sustain_guard-0.7.0-py3-none-any.whl
- Upload date:
- Size: 87.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5850df13cde20b6b935844640c06fa8051b2d2d359e6898bc6fd3ea16fa50125
|
|
| MD5 |
10f5780a1b365d02851de07b679847fa
|
|
| BLAKE2b-256 |
2c3ce1d82e985bd127d4ef39712883a07b133e54e070010b1d47f809e9a6bba4
|
Provenance
The following attestation bundles were made for oss_sustain_guard-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on onukura/oss-sustain-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oss_sustain_guard-0.7.0-py3-none-any.whl -
Subject digest:
5850df13cde20b6b935844640c06fa8051b2d2d359e6898bc6fd3ea16fa50125 - Sigstore transparency entry: 773804872
- Sigstore integration time:
-
Permalink:
onukura/oss-sustain-guard@2940ffc48088c99bdd9c1a18c451ff2e078d1a9a -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/onukura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2940ffc48088c99bdd9c1a18c451ff2e078d1a9a -
Trigger Event:
push
-
Statement type: