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
  • 🎯 Config-driven behavior from a single config.json

Project Structure

business-card/
├── src/                  # Rust source code
│   └── main.rs
├── Cargo.toml            # Rust package manifest
├── Cargo.lock
├── config.json           # Centralized configuration
├── config.schema.json    # JSON Schema validation
├── CONFIGURATION.md      # Configuration docs
└── README.md

Configuration

The CLI reads settings from root config.json:

  • Personal information (name, title, company, location, skills)
  • URLs (email, resume, portfolio, github, linkedin, twitter)
  • Theme settings

For full configuration details, see CONFIGURATION.md.

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.5.tar.gz (2.6 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.5-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: carlosferreyra-1.2.5.tar.gz
  • Upload date:
  • Size: 2.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","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.5.tar.gz
Algorithm Hash digest
SHA256 9207a7a8e460ae8ae51bd5087783180cf4dba4bf5e6a9d377d819847168a84eb
MD5 a02a7aa4d2c1ca2338ff82a5b49e6d98
BLAKE2b-256 b694a295889e4226b3e2c67e9b76e38f796c258ea56ec1a19e97c6841889c7b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: carlosferreyra-1.2.5-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 273e6945194875e8ebd0194ba727dc261c0c769a3ef4e3bbd77807a3a5eeb35c
MD5 408b27409b99ea84f9bddb9a894ef00c
BLAKE2b-256 0dcc5933a2d1dadf325d0c7606097ec2252f94d26832baa622676b4941a772ac

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