Metadata-Version: 2.4
Name: urlshortner-byiambaka
Version: 0.1.0
Summary: A url shortner and bookmark
Author: Aryan
License: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.115
Requires-Dist: uvicorn>=0.35
Requires-Dist: typer>=0.16
Requires-Dist: httpx>=0.28
Requires-Dist: redis>=6.2
Requires-Dist: pydantic>=2.11
Requires-Dist: requests>=2.32.0
Requires-Dist: questionary>=2.1.1
Requires-Dist: rich>=13.8

urlshortner-byiambaka

A lightweight, keyboard-driven URL shortening service that manages your bookmarks via a beautiful CLI, backed by a high-performance FastAPI/Redis server.
Features

    Interactive CLI: Manage bookmarks with a clean, menu-driven interface.

    Fast API: Asynchronous backend powered by FastAPI.

    Redis Powered: Persistent storage for your bookmarks and short-links.

    Automated: 5-character short ID generation and auto-redirection.

Prerequisites

    Redis must be installed and running on your machine.

Installation

You can install the package directly via pip:
Bash

pip install urlshortner-byiambaka

Quick Start

    Start the Redis server:
    Bash

redis-server

Launch the CLI:
You can run the application directly from your terminal:
Bash

    urlshortner

    Interact:
    Use your arrow keys to select options:

        Create: Save a new long URL with a custom name.

        Show All: View your saved bookmarks and their generated proxy URLs.

        Delete: Remove existing bookmarks.

API Integration

The tool automatically spins up a background Uvicorn server on [http://127.0.0.1:8000](http://127.0.0.1:8000). You can interact with the API directly:

    POST /add: Create a new bookmark.

    GET /allbookmark: Retrieve all saved links.

    DELETE /delete/{name}: Remove a link.

    GET /{short_id}: Redirect to the original URL.

Configuration

The tool expects a local Redis instance running on the default port 6379. Ensure your environment variables are configured if your Redis setup uses non-standard ports or passwords.
License

Distributed under the MIT License. See LICENSE for more information.
