link-bridge
A lightweight Rust library for creating URL redirects with short names that generate web pages redirecting to longer links on your website.
This crate provides a simple and efficient way to create HTML redirect pages that automatically forward users from short, memorable paths to longer URLs on your website. Perfect for creating user-friendly shortcuts, maintaining backward compatibility after URL changes, or implementing a simple URL shortening system.
Features
- 🚀 Fast and lightweight - Minimal dependencies and efficient operation
- 🔧 Simple API - Easy-to-use interface for creating redirects
- 🎯 URL validation - Ensures paths contain only valid characters
- 📁 Automatic file management - Creates directories and HTML files automatically
- 📋 Registry system - Prevents duplicate redirects and ensures consistency
- 🌐 Standards compliant - Generates proper HTML5 with multiple redirect methods
- 🔒 Safe - Built with Rust's memory safety and error handling
Quick Start
Add this to your Cargo.toml:
[]
= "0.2.2"
Basic Usage
use Redirector;
// Create a redirector for a URL path
let mut redirector = new.unwrap;
// Optionally customize the output directory
redirector.set_path;
// Generate the redirect HTML file
let redirect_path = redirector.write_redirect.unwrap;
This creates an HTML file that automatically redirects visitors from your short URL to the longer target path using multiple redirect methods for maximum compatibility.
How It Works
- URL Validation: Input paths are validated to ensure they contain only safe characters
- Unique Naming: Short file names are generated using base62 encoding and timestamps
- Registry Check: System checks if a redirect for this URL path already exists
- HTML Generation: Complete HTML5 pages are created with multiple redirect methods:
- Meta refresh tag (universal browser support)
- JavaScript redirect (faster when JS is enabled)
- Manual fallback link (accessibility and fail-safe)
- File Management: Directories are created automatically and files are written to disk
- Registry Update: The registry is updated to track the new redirect mapping
Generated HTML Structure
The library creates complete HTML5 pages that work across all browsers:
Page Redirection
If you are not redirected automatically, follow this
link.
Error Handling
The library uses comprehensive error handling:
use ;
match new
Documentation
For comprehensive API documentation, examples, and advanced usage patterns, visit:
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Development Setup
Running Tests
# Run all tests
# Run with coverage
Changelog
See CHANGELOG.md for version history and breaking changes.
Licence
This project is licensed under the MIT Licence - see the LICENCE file for details.
Acknowledgments
- Inspired by URL shortening services like bit.ly and tinyurl
- Thanks to the Rust community for feedback and contributions
For questions, issues, or feature requests, please open an issue on GitHub.