lucide-svg-rs

Crates.iolucide-svg-rs
lib.rslucide-svg-rs
version0.1.8
created_at2025-08-22 00:35:35.483643+00
updated_at2025-08-28 22:56:43.211845+00
descriptionA Rust library and CLI tool for downloading SVG icons from the Lucide icon library with interactive selection and preview capabilities.
homepage
repositoryhttps://github.com/crabtools-rs/lucide-svg-rs
max_upload_size
id1805725
size710,616
Jose Correa (soulcorrea)

documentation

README

lucide-svg-rs

A Lucide Library and Offline CLI

Contributions Welcome License: MIT/Apache-2.0 CI Release Crates.io Docs.rs codecov

lucide-svg-rs is a Rust library + command-line tool for working with Lucide SVG icons both online and offline. All icons are shipped in a local icons/ directory โ€” no network access required.

lucide-svg-rs

๐Ÿš€ Quick Start

Installation

Clone and build:

cargo build --release

The binary will be available at:

target/release/lucide-svg-rs

๐Ÿ“– Usage

List icons

lucide-svg-rs list
lucide-svg-rs list --json

Search icons

lucide-svg-rs search alert
lucide-svg-rs search alert --json

Export icons

lucide-svg-rs download-all ./out

๐Ÿงช Testing

Run the test suite:

cargo test

This covers:

  • Defaulting to ICONS_DIR
  • Searching icons
  • Download/export
  • JSON output validity

๐Ÿง‘โ€๐Ÿ’ป Developer Guide

For a comprehensive reference covering:

  • Integration & JSON tests (cargo test --test cli)
  • Examples & doctests
  • CI/CD workflows
  • Release automation (checksums, GPG signing, SBOM)
  • Reproducible builds (Nix flake)
  • Portable usage (Docker)

๐Ÿ‘‰ see GUIDE.md.

๐Ÿค Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines.

Key points:

  • Follow Conventional Commits (e.g. feat:, fix:, docs:)
  • Our release process is automated via Release Please โ€” version bumps and CHANGELOG are handled for you
  • Ensure cargo fmt, cargo clippy -D warnings, and cargo test all pass before opening a PR

๐Ÿ“š Docs build

CI verifies the docs compile cleanly (warnings as errors):

RUSTDOCFLAGS="-D warnings" cargo doc --no-deps

๐Ÿšฆ Publish guard

On tags (v*.*.*), CI runs a publish guard to catch issues before a real publish:

  • cargo package --locked
  • cargo publish --dry-run
  • docs.rs-style build on nightly with --cfg docsrs -D warnings

๐Ÿ“ฆ crates.io publish

A separate workflow .github/workflows/cargo-publish.yml runs when a GitHub Release is published.

  • Requires CARGO_REGISTRY_TOKEN secret (from crates.io account)
  • Only runs on the main repository (not forks)
  • Executes cargo publish --locked

๐Ÿ”— Unified Release Flow

Releases are handled by a single workflow (.github/workflows/release.yml) that:

  • plans/builds via cargo-dist
  • generates an aggregate CHECKSUMS.sha256 (and optional .asc signature)
  • produces a CycloneDX SBOM
  • publishes a GitHub Release with all artifacts

Trigger by pushing a tag:

git tag v0.1.0
git push origin v0.1.0

๐Ÿš€ Releases

Maintainers: use the Release Checklist issue form to guide each release. Tag format: vX.Y.Z (e.g., v0.1.0).

  • Open a new issue โ†’ Release Checklist

  • Complete pre-tag checks, then tag and push:

    git tag v0.1.0
    git push origin v0.1.0
    
  • CI will build artifacts, generate SBOM & checksums, publish GitHub Release, and (optionally) push Homebrew/Scoop files.

  • A separate workflow can publish the crate to crates.io when a GitHub Release is published.


๐Ÿ”ง Note: CI/Release/Codecov badges are auto-patched by .github/workflows/patch-badges.yml after pushes to main.

Commit count: 37

cargo fmt