# 🛡️ LinkGuard
> **Fast, async link validation for developers. Catch broken links before your users do.**
[](https://www.python.org/downloads/)
[](https://github.com/anubhabx/link-guard/releases)
[](https://opensource.org/licenses/MIT)
[](tests/)
[](htmlcov/index.html)
[](RELEASE_NOTES.md)
[](CONTRIBUTING.md)
LinkGuard is a fast, async Python CLI tool that scans your project files for broken links and development URLs. Catch 404s before your users do, and ensure localhost references don't leak into production.
---
## ✨ Features
- 🚀 **Blazing Fast** - Async validation checks hundreds of links in seconds
- 🎯 **Environment-Aware** - Detect localhost/dev URLs that shouldn't reach production
- 🎨 **Beautiful CLI** - Rich progress bars and color-coded results
- 📊 **Multiple Exports** - JSON, CSV, and Markdown reports for automation
- 🔍 **Smart Extraction** - Supports Markdown, HTML, JSON, JS/TS, and plain text
- ⚙️ **Zero Config** - Works out of the box with sensible defaults
- 🛠️ **Configurable** - `.linkguardignore` and `linkguard.config.json` support
- ✅ **Production Ready** - 91 tests, 71% coverage, comprehensive documentation
---
## 📦 Installation
```bash
# Install from PyPI (coming soon)
pip install linkguard
# Or install from source
git clone https://github.com/anubhabx/link-guard.git
cd link-guard
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows (PowerShell)
.\venv\Scripts\Activate.ps1
# Linux/Mac
source venv/bin/activate
# Install in development mode (includes all dependencies)
pip install -e ".[dev]"
```
> **💡 Tip**: After installation with `pip install -e ".[dev]"`, you can use `linkguard` directly instead of `python -m linkguard.cli`
---
## 🚀 Quick Start
```bash
# Scan current directory
linkguard
# Scan specific directory
linkguard ./docs
# Production mode (flags localhost URLs as errors)
linkguard --mode prod
# Export results to JSON
linkguard --export report.json
# Custom timeout
linkguard --timeout 15
```
**Example Output:**
```
🔍 Scanning directory: ./docs
Mode: dev | Timeout: 10s
✓ Found 42 files to scan
✓ Extracted 156 URLs
🌐 Checking links...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 156/156
╭─ Scan Summary ─────────────╮
│ Files scanned       42     │
│ URLs found          156    │
│ Working links       152    │
│ Broken links        4      │
│ Rule violations     0      │
╰────────────────────────────╯
```
---
## 📖 Documentation
| Document | Description |
|----------|-------------|
| **[QUICKSTART.md](QUICKSTART.MD)** | Installation, basic usage, and common examples |
| **[FEATURES.md](FEATURES.MD)** | Complete feature list and capabilities |
| **[CONTRIBUTING.md](CONTRIBUTING.md)** | Development setup, testing, and contribution guidelines |
| **[RELEASE_NOTES.md](RELEASE_NOTES.md)** | v1.0 release details and highlights |
| **[CHANGELOG.md](CHANGELOG.MD)** | Full version history and changes |
---
## ⚙️ Configuration
### Command-Line Options
```bash
linkguard [DIRECTORY] [OPTIONS]
Options:
  --mode, -m          dev|prod        Scanning mode (default: dev)
  --timeout, -t       INTEGER         Request timeout in seconds (default: 10)
  --export, -e        PATH            Export to JSON/CSV/Markdown
  --concurrency, -c   INTEGER         Max concurrent requests (default: 50)
  --ignore, -i        TEXT            Comma-separated ignore patterns
  --verbose, -v                       Detailed output
  --help                              Show help
```
### Configuration File
Create `linkguard.config.json` in your project root:
```json
{
  "mode": "prod",
  "timeout": 15,
  "concurrency": 100,
  "ignore_patterns": ["node_modules/**", "*.min.js"],
  "exclude_urls": ["https://example.local"],
  "strict_ssl": false
}
```
See [linkguard.config.json.example](linkguard.config.json.example) for all options.
### Ignore File
Create `.linkguardignore` (gitignore-style syntax):
```
# Ignore directories
node_modules/
dist/**
build/
# Ignore file patterns
*.draft.md
temp-*.json
# Ignore domains
*.internal.company.com
example.local
```
---
## 🏗️ Supported File Types
| Type | Extensions | What's Extracted |
|------|-----------|------------------|
| Markdown | `.md`, `.markdown` | `[text](url)` and bare URLs |
| HTML | `.html`, `.htm` | `href`, `src` attributes |
| JSON | `.json` | URL strings in values |
| JavaScript/TypeScript | `.js`, `.jsx`, `.ts`, `.tsx` | Bare URL patterns |
| Plain Text | `.txt` | HTTP/HTTPS URLs |
**Auto-excluded**: `.git`, `.venv`, `node_modules`, `__pycache__`, `dist`, `build`
---
## 🔧 CI/CD Integration
### GitHub Actions
```yaml
name: Link Validation
on: [push, pull_request]
jobs:
  check-links:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: Install LinkGuard
        run: pip install linkguard
      - name: Check links
        run: linkguard --mode prod --export report.json
      - name: Upload report
        if: failure()
        uses: actions/upload-artifact@v3
        with:
          name: link-report
          path: report.json
```
**Exit Codes:**
- `0` - All links valid
- `1` - Broken links or rule violations found
- `2` - Configuration error
---
## 🎯 Use Cases
✅ **Documentation Sites** - Ensure all links work before publishing  
✅ **Open Source Projects** - Validate README and wiki links  
✅ **Marketing Sites** - Check landing pages and blog posts  
✅ **CI/CD Pipelines** - Automated link checking on every commit  
✅ **Pre-Production Checks** - Catch localhost URLs before deployment  
✅ **Content Migration** - Validate links after CMS migrations
---
## 🤝 Contributing
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
- Development setup and workflow
- Testing guidelines (91 tests, 71% coverage)
- Code style requirements (PEP 8, Black, type hints)
- Pull request process
**Quick Start:**
```bash
git clone https://github.com/anubhabx/link-guard.git
cd link-guard
python -m venv venv
source venv/bin/activate  # or .\venv\Scripts\Activate.ps1 on Windows
pip install -e ".[dev]"
pytest tests/ -v
```
---
## 🗺️ Roadmap
### ✅ v1.0 (Current - October 2025)
- Production-ready release
- Comprehensive documentation
- 91 passing tests with 71% coverage
- GitHub Actions CI/CD
- Published to PyPI
### 🚧 v1.1.0 (Planned)
- Retry logic with exponential backoff
- Custom HTTP headers support
- Relative URL resolution
- Enhanced performance optimizations
### 🔮 v2.0.0 (Future)
- Anchor link validation (`#section`)
- Browser automation (Playwright) for bot detection bypass
- Web dashboard for analytics
- Webhook notifications (Slack/Discord)
See [FEATURES.MD](FEATURES.MD) for complete roadmap.
---
## 📊 Performance
**Benchmarks** (typical projects):
- ✅ 100 links validated in ~2 seconds
- ✅ 1,000 links validated in ~5 seconds
- ✅ 10,000 files scanned in <30 seconds
**Architecture:**
- Async I/O with `aiohttp` for concurrent requests
- Semaphore-based concurrency control (default: 50)
- Memory-efficient streaming file reads
- HEAD request with smart GET fallback
---
## 🐛 Troubleshooting
**Valid links marked as broken?**
- Some servers block automated requests → Increase timeout: `--timeout 20`
**"Connection timeout" errors?**
- Network latency or slow servers → Try: `--timeout 30`
**Ignore specific files/URLs?**
- Use `.linkguardignore` or add to `linkguard.config.json`
**Command not found?**
- Ensure installed: `pip install -e ".[dev]"`
- Or use: `python -m linkguard.cli`
**SSL certificate errors?**
- LinkGuard skips SSL verification by default
- Coming soon: `--strict-ssl` flag
See [QUICKSTART.MD](QUICKSTART.MD) for more troubleshooting tips.
---
## 📄 License
MIT License - see [LICENSE](LICENSE) file for details.
---
## 🙏 Acknowledgments
Built with these amazing tools:
- [aiohttp](https://docs.aiohttp.org/) - Async HTTP client
- [typer](https://typer.tiangolo.com/) - Modern CLI framework
- [rich](https://rich.readthedocs.io/) - Beautiful terminal formatting
- [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/) - HTML parsing
Special thanks to all [contributors](https://github.com/anubhabx/link-guard/graphs/contributors)! 🎉
---
## 📞 Support
- 🐛 **Bug Reports**: [GitHub Issues](https://github.com/anubhabx/link-guard/issues)
- 💬 **Discussions**: [GitHub Discussions](https://github.com/anubhabx/link-guard/discussions)
- 💡 **Feature Requests**: [Open an Issue](https://github.com/anubhabx/link-guard/issues/new)
- 📧 **Contact**: anubhabxdev@gmail.com
---
<div align="center">
**Made with ❤️ for the open-source community**
If you find LinkGuard useful, please give it a ⭐!
[Documentation](QUICKSTART.MD) • [Features](FEATURES.MD) • [Contributing](CONTRIBUTING.md) • [Changelog](CHANGELOG.MD)
</div>
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "linkguard",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Anubhab Debnath <anubhabxdev@gmail.com>",
    "keywords": "link-checker, broken-links, url-validator, markdown, documentation, ci-cd, async, cli",
    "author": null,
    "author_email": "Anubhab Debnath <anubhabxdev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e9/92/cbf55185bbb855e18182ead6742aa3ea4662a72908fd5b5d7c1ed80d01dd/linkguard-1.0.1.tar.gz",
    "platform": null,
    "description": "# \ud83d\udee1\ufe0f LinkGuard\r\n\r\n> **Fast, async link validation for developers. Catch broken links before your users do.**\r\n\r\n[](https://www.python.org/downloads/)\r\n[](https://github.com/anubhabx/link-guard/releases)\r\n[](https://opensource.org/licenses/MIT)\r\n[](tests/)\r\n[](htmlcov/index.html)\r\n[](RELEASE_NOTES.md)\r\n[](CONTRIBUTING.md)\r\n\r\nLinkGuard is a fast, async Python CLI tool that scans your project files for broken links and development URLs. Catch 404s before your users do, and ensure localhost references don't leak into production.\r\n\r\n---\r\n\r\n## \u2728 Features\r\n\r\n- \ud83d\ude80 **Blazing Fast** - Async validation checks hundreds of links in seconds\r\n- \ud83c\udfaf **Environment-Aware** - Detect localhost/dev URLs that shouldn't reach production\r\n- \ud83c\udfa8 **Beautiful CLI** - Rich progress bars and color-coded results\r\n- \ud83d\udcca **Multiple Exports** - JSON, CSV, and Markdown reports for automation\r\n- \ud83d\udd0d **Smart Extraction** - Supports Markdown, HTML, JSON, JS/TS, and plain text\r\n- \u2699\ufe0f **Zero Config** - Works out of the box with sensible defaults\r\n- \ud83d\udee0\ufe0f **Configurable** - `.linkguardignore` and `linkguard.config.json` support\r\n- \u2705 **Production Ready** - 91 tests, 71% coverage, comprehensive documentation\r\n\r\n---\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n```bash\r\n# Install from PyPI (coming soon)\r\npip install linkguard\r\n\r\n# Or install from source\r\ngit clone https://github.com/anubhabx/link-guard.git\r\ncd link-guard\r\n\r\n# Create virtual environment\r\npython -m venv venv\r\n\r\n# Activate virtual environment\r\n# Windows (PowerShell)\r\n.\\venv\\Scripts\\Activate.ps1\r\n# Linux/Mac\r\nsource venv/bin/activate\r\n\r\n# Install in development mode (includes all dependencies)\r\npip install -e \".[dev]\"\r\n```\r\n\r\n> **\ud83d\udca1 Tip**: After installation with `pip install -e \".[dev]\"`, you can use `linkguard` directly instead of `python -m linkguard.cli`\r\n\r\n---\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n```bash\r\n# Scan current directory\r\nlinkguard\r\n\r\n# Scan specific directory\r\nlinkguard ./docs\r\n\r\n# Production mode (flags localhost URLs as errors)\r\nlinkguard --mode prod\r\n\r\n# Export results to JSON\r\nlinkguard --export report.json\r\n\r\n# Custom timeout\r\nlinkguard --timeout 15\r\n```\r\n\r\n**Example Output:**\r\n\r\n```\r\n\ud83d\udd0d Scanning directory: ./docs\r\nMode: dev | Timeout: 10s\r\n\r\n\u2713 Found 42 files to scan\r\n\u2713 Extracted 156 URLs\r\n\r\n\ud83c\udf10 Checking links...\r\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100% 156/156\r\n\r\n\u256d\u2500 Scan Summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 Files scanned       42     \u2502\r\n\u2502 URLs found          156    \u2502\r\n\u2502 Working links       152    \u2502\r\n\u2502 Broken links        4      \u2502\r\n\u2502 Rule violations     0      \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udcd6 Documentation\r\n\r\n| Document | Description |\r\n|----------|-------------|\r\n| **[QUICKSTART.md](QUICKSTART.MD)** | Installation, basic usage, and common examples |\r\n| **[FEATURES.md](FEATURES.MD)** | Complete feature list and capabilities |\r\n| **[CONTRIBUTING.md](CONTRIBUTING.md)** | Development setup, testing, and contribution guidelines |\r\n| **[RELEASE_NOTES.md](RELEASE_NOTES.md)** | v1.0 release details and highlights |\r\n| **[CHANGELOG.md](CHANGELOG.MD)** | Full version history and changes |\r\n\r\n---\r\n\r\n## \u2699\ufe0f Configuration\r\n\r\n### Command-Line Options\r\n\r\n```bash\r\nlinkguard [DIRECTORY] [OPTIONS]\r\n\r\nOptions:\r\n  --mode, -m          dev|prod        Scanning mode (default: dev)\r\n  --timeout, -t       INTEGER         Request timeout in seconds (default: 10)\r\n  --export, -e        PATH            Export to JSON/CSV/Markdown\r\n  --concurrency, -c   INTEGER         Max concurrent requests (default: 50)\r\n  --ignore, -i        TEXT            Comma-separated ignore patterns\r\n  --verbose, -v                       Detailed output\r\n  --help                              Show help\r\n```\r\n\r\n### Configuration File\r\n\r\nCreate `linkguard.config.json` in your project root:\r\n\r\n```json\r\n{\r\n  \"mode\": \"prod\",\r\n  \"timeout\": 15,\r\n  \"concurrency\": 100,\r\n  \"ignore_patterns\": [\"node_modules/**\", \"*.min.js\"],\r\n  \"exclude_urls\": [\"https://example.local\"],\r\n  \"strict_ssl\": false\r\n}\r\n```\r\n\r\nSee [linkguard.config.json.example](linkguard.config.json.example) for all options.\r\n\r\n### Ignore File\r\n\r\nCreate `.linkguardignore` (gitignore-style syntax):\r\n\r\n```\r\n# Ignore directories\r\nnode_modules/\r\ndist/**\r\nbuild/\r\n\r\n# Ignore file patterns\r\n*.draft.md\r\ntemp-*.json\r\n\r\n# Ignore domains\r\n*.internal.company.com\r\nexample.local\r\n```\r\n\r\n---\r\n\r\n## \ud83c\udfd7\ufe0f Supported File Types\r\n\r\n| Type | Extensions | What's Extracted |\r\n|------|-----------|------------------|\r\n| Markdown | `.md`, `.markdown` | `[text](url)` and bare URLs |\r\n| HTML | `.html`, `.htm` | `href`, `src` attributes |\r\n| JSON | `.json` | URL strings in values |\r\n| JavaScript/TypeScript | `.js`, `.jsx`, `.ts`, `.tsx` | Bare URL patterns |\r\n| Plain Text | `.txt` | HTTP/HTTPS URLs |\r\n\r\n**Auto-excluded**: `.git`, `.venv`, `node_modules`, `__pycache__`, `dist`, `build`\r\n\r\n---\r\n\r\n## \ud83d\udd27 CI/CD Integration\r\n\r\n### GitHub Actions\r\n\r\n```yaml\r\nname: Link Validation\r\n\r\non: [push, pull_request]\r\n\r\njobs:\r\n  check-links:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n      - uses: actions/checkout@v3\r\n      - uses: actions/setup-python@v4\r\n        with:\r\n          python-version: '3.10'\r\n      - name: Install LinkGuard\r\n        run: pip install linkguard\r\n      - name: Check links\r\n        run: linkguard --mode prod --export report.json\r\n      - name: Upload report\r\n        if: failure()\r\n        uses: actions/upload-artifact@v3\r\n        with:\r\n          name: link-report\r\n          path: report.json\r\n```\r\n\r\n**Exit Codes:**\r\n- `0` - All links valid\r\n- `1` - Broken links or rule violations found\r\n- `2` - Configuration error\r\n\r\n---\r\n\r\n## \ud83c\udfaf Use Cases\r\n\r\n\u2705 **Documentation Sites** - Ensure all links work before publishing  \r\n\u2705 **Open Source Projects** - Validate README and wiki links  \r\n\u2705 **Marketing Sites** - Check landing pages and blog posts  \r\n\u2705 **CI/CD Pipelines** - Automated link checking on every commit  \r\n\u2705 **Pre-Production Checks** - Catch localhost URLs before deployment  \r\n\u2705 **Content Migration** - Validate links after CMS migrations\r\n\r\n---\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:\r\n- Development setup and workflow\r\n- Testing guidelines (91 tests, 71% coverage)\r\n- Code style requirements (PEP 8, Black, type hints)\r\n- Pull request process\r\n\r\n**Quick Start:**\r\n\r\n```bash\r\ngit clone https://github.com/anubhabx/link-guard.git\r\ncd link-guard\r\npython -m venv venv\r\nsource venv/bin/activate  # or .\\venv\\Scripts\\Activate.ps1 on Windows\r\npip install -e \".[dev]\"\r\npytest tests/ -v\r\n```\r\n\r\n---\r\n\r\n## \ud83d\uddfa\ufe0f Roadmap\r\n\r\n### \u2705 v1.0 (Current - October 2025)\r\n- Production-ready release\r\n- Comprehensive documentation\r\n- 91 passing tests with 71% coverage\r\n- GitHub Actions CI/CD\r\n- Published to PyPI\r\n\r\n### \ud83d\udea7 v1.1.0 (Planned)\r\n- Retry logic with exponential backoff\r\n- Custom HTTP headers support\r\n- Relative URL resolution\r\n- Enhanced performance optimizations\r\n\r\n### \ud83d\udd2e v2.0.0 (Future)\r\n- Anchor link validation (`#section`)\r\n- Browser automation (Playwright) for bot detection bypass\r\n- Web dashboard for analytics\r\n- Webhook notifications (Slack/Discord)\r\n\r\nSee [FEATURES.MD](FEATURES.MD) for complete roadmap.\r\n\r\n---\r\n\r\n## \ud83d\udcca Performance\r\n\r\n**Benchmarks** (typical projects):\r\n- \u2705 100 links validated in ~2 seconds\r\n- \u2705 1,000 links validated in ~5 seconds\r\n- \u2705 10,000 files scanned in <30 seconds\r\n\r\n**Architecture:**\r\n- Async I/O with `aiohttp` for concurrent requests\r\n- Semaphore-based concurrency control (default: 50)\r\n- Memory-efficient streaming file reads\r\n- HEAD request with smart GET fallback\r\n\r\n---\r\n\r\n## \ud83d\udc1b Troubleshooting\r\n\r\n**Valid links marked as broken?**\r\n- Some servers block automated requests \u2192 Increase timeout: `--timeout 20`\r\n\r\n**\"Connection timeout\" errors?**\r\n- Network latency or slow servers \u2192 Try: `--timeout 30`\r\n\r\n**Ignore specific files/URLs?**\r\n- Use `.linkguardignore` or add to `linkguard.config.json`\r\n\r\n**Command not found?**\r\n- Ensure installed: `pip install -e \".[dev]\"`\r\n- Or use: `python -m linkguard.cli`\r\n\r\n**SSL certificate errors?**\r\n- LinkGuard skips SSL verification by default\r\n- Coming soon: `--strict-ssl` flag\r\n\r\nSee [QUICKSTART.MD](QUICKSTART.MD) for more troubleshooting tips.\r\n\r\n---\r\n\r\n## \ud83d\udcc4 License\r\n\r\nMIT License - see [LICENSE](LICENSE) file for details.\r\n\r\n---\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\nBuilt with these amazing tools:\r\n- [aiohttp](https://docs.aiohttp.org/) - Async HTTP client\r\n- [typer](https://typer.tiangolo.com/) - Modern CLI framework\r\n- [rich](https://rich.readthedocs.io/) - Beautiful terminal formatting\r\n- [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/) - HTML parsing\r\n\r\nSpecial thanks to all [contributors](https://github.com/anubhabx/link-guard/graphs/contributors)! \ud83c\udf89\r\n\r\n---\r\n\r\n## \ud83d\udcde Support\r\n\r\n- \ud83d\udc1b **Bug Reports**: [GitHub Issues](https://github.com/anubhabx/link-guard/issues)\r\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/anubhabx/link-guard/discussions)\r\n- \ud83d\udca1 **Feature Requests**: [Open an Issue](https://github.com/anubhabx/link-guard/issues/new)\r\n- \ud83d\udce7 **Contact**: anubhabxdev@gmail.com\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Made with \u2764\ufe0f for the open-source community**\r\n\r\nIf you find LinkGuard useful, please give it a \u2b50!\r\n\r\n[Documentation](QUICKSTART.MD) \u2022 [Features](FEATURES.MD) \u2022 [Contributing](CONTRIBUTING.md) \u2022 [Changelog](CHANGELOG.MD)\r\n\r\n</div>\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "CLI tool for detecting broken links and localhost URLs in project files",
    "version": "1.0.1",
    "project_urls": {
        "Changelog": "https://github.com/anubhabx/link-guard/releases",
        "Documentation": "https://github.com/anubhabx/link-guard#readme",
        "Homepage": "https://github.com/anubhabx/link-guard",
        "Issues": "https://github.com/anubhabx/link-guard/issues",
        "Repository": "https://github.com/anubhabx/link-guard"
    },
    "split_keywords": [
        "link-checker",
        " broken-links",
        " url-validator",
        " markdown",
        " documentation",
        " ci-cd",
        " async",
        " cli"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e75df4094ec5f9e077d267a2c78c82ce4e5786cd47b16441a8ed39f0eb3448fb",
                "md5": "2a142c24408d756fb93a38ac6fbf0c4c",
                "sha256": "7c9f3b8a93a1e9c85ce5ffde8960c3278eb877366dbb2fad30d561662384e476"
            },
            "downloads": -1,
            "filename": "linkguard-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2a142c24408d756fb93a38ac6fbf0c4c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 30243,
            "upload_time": "2025-10-17T20:36:24",
            "upload_time_iso_8601": "2025-10-17T20:36:24.720800Z",
            "url": "https://files.pythonhosted.org/packages/e7/5d/f4094ec5f9e077d267a2c78c82ce4e5786cd47b16441a8ed39f0eb3448fb/linkguard-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e992cbf55185bbb855e18182ead6742aa3ea4662a72908fd5b5d7c1ed80d01dd",
                "md5": "680ea5c071e8748247aff5989d53fc4f",
                "sha256": "82eaa59eb62189f930234c2190b1e15866fd8b311db3fe605f6d28ef38143917"
            },
            "downloads": -1,
            "filename": "linkguard-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "680ea5c071e8748247aff5989d53fc4f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 44055,
            "upload_time": "2025-10-17T20:36:26",
            "upload_time_iso_8601": "2025-10-17T20:36:26.353877Z",
            "url": "https://files.pythonhosted.org/packages/e9/92/cbf55185bbb855e18182ead6742aa3ea4662a72908fd5b5d7c1ed80d01dd/linkguard-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-17 20:36:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "anubhabx",
    "github_project": "link-guard",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "linkguard"
}