Skip to main content

Interactive CLI business card - fast Rust implementation

Project description

Interactive CLI Business Card

A fast, interactive CLI business card implemented in Rust.

License: MIT Rust uvx bunx

🚀 Quick Start

Cargo (direct Rust install)

cargo install carlosferreyra
carlosferreyra

uvx (wrapper entrypoint)

uvx carlosferreyra

bunx (wrapper entrypoint)

bunx carlosferreyra

Features

  • ⚡ Fast Rust CLI
  • 📧 Direct email contact
  • 🌐 Portfolio and social links
  • 🖥️ Interactive menu
  • 🔧 Non-interactive mode via --open
  • 🎯 Resume-driven behavior from resume.json with runtime refresh from GitHub

Project Structure

business-card/
├── src/                  # Rust source code
│   └── main.rs
├── Cargo.toml            # Rust package manifest
├── Cargo.lock
├── resume.json           # Embedded fallback resume snapshot
└── README.md

Configuration

The CLI fetches resume metadata at startup from:

https://raw.githubusercontent.com/carlosferreyra/carlosferreyra/main/resume.json

If the fetch fails, times out, or returns invalid data, the CLI falls back to the embedded root resume.json in this repository.

  • Personal information (name, title, company, location, skills)
  • Links (email, portfolio, GitHub, LinkedIn, Twitter, LeetCode)
  • CLI-labeled portfolio projects

The CLI renders the profiles.cli profile plus links, skills, and projects whose labels include cli.

Distribution Model

  • Source code in this repo: Rust only
  • uvx carlosferreyra: Python ecosystem entrypoint wrapper (generated/published in release pipeline)
  • bunx carlosferreyra: Node ecosystem entrypoint wrapper (generated/published in release pipeline)

The uvx and bunx packages are distribution entrypoints, not source implementations in this repository.

Release Pipeline

  • Release workflow (.github/workflows/release.yml) is the source of truth.
  • It runs cargo release <patch|minor|major> --execute --no-confirm and publishes to crates.io.
  • It then runs cargo dist build using Cargo.toml dist settings.
  • On successful completion, release_pypi.yml and release_npm.yml run automatically.
  • Those workflows generate Python/npm wrapper package metadata from Cargo.toml on the fly (no dedicated python/ or typescript/ source folders).

Development

cargo run
cargo run -- --open portfolio
cargo check
cargo build --release

Connect with Carlos

License

MIT


Appendix: Package Index Wrappers

The packages published to PyPI and npm are entrypoint wrappers around the Rust CLI binary.

  • pipx/uvx package: invokes the Rust carlosferreyra executable.
  • npx/bunx package: invokes the Rust carlosferreyra executable.

If the binary is not available, wrappers attempt to bootstrap it from release artifacts generated by cargo dist; if that fails, install directly with:

cargo install carlosferreyra

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carlosferreyra-1.2.15.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carlosferreyra-1.2.15-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file carlosferreyra-1.2.15.tar.gz.

File metadata

  • Download URL: carlosferreyra-1.2.15.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for carlosferreyra-1.2.15.tar.gz
Algorithm Hash digest
SHA256 c4600de6e1ffbb29cf7a65f8e8703a1e433e52b7deb5a781c664fa6e5b772d9a
MD5 5e8e5f3b3a6a23a2685d1f39ae67f493
BLAKE2b-256 a4f1fa14d05beeaff21113b173bdfb99dd3260ad5c0fd4689182d62458791908

See more details on using hashes here.

File details

Details for the file carlosferreyra-1.2.15-py3-none-any.whl.

File metadata

  • Download URL: carlosferreyra-1.2.15-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for carlosferreyra-1.2.15-py3-none-any.whl
Algorithm Hash digest
SHA256 77be4e5ff09abe96505757da0caf3eca7eaed5de48613959a3e65be61428f293
MD5 ac4fdab92aa7d916846a1afc67c460fc
BLAKE2b-256 e636e713cde103128749ff49469fa750c42f20f085cc2405942945bf38759c3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page