A dead simple human-writable URL redirector based loosely on google's `go/` system.

Overview

Redirector

a redirector written in rust intended for permanent human-readable redirects.

The idea was semi-inspired by the book Software Engineering at Google.

This chapter describes go/ links which are part of knowledge sharing, canonical URLs, and are part of the inspiration for this topic.

The URL Redictor can be compiled with a static config-file backend or a database.

The database backend supports user submissions through 404 pages.

Features

feature excludes default
config_file database yes
database config_file no

Adding URLs (Config_File)

urls.toml contains a [urls] keyspace which contains key/value pairs of shortcodes and the URL.

For a real-life example, a config like:

[urls]
handbook = "https://mycompany.atlassian.net/wiki/spaces/DOCTEAM/pages/2565079041/Handbook"

would redirect go/handbook to https://mycompany.atlassian.net/wiki/spaces/DOCTEAM/pages/2565079041/Handbook with a 308 (permanent) redirect. Assuming of course that this program was resolvable as go.

Improvements

Future improvements could be a database and an API which can push updates to the dataset.

This will slow the process down considerably, but allows for much more flexibility, as the current update mechanism is a merge-request.

You might also like...
Simple viewer webpage for Dilbert by Scott Adams

Dilbert Viewer A simple comic viewer for Dilbert by Scott Adams, hosted on Heroku here. It uses the third-party Rust Buildpack with the Heroku Postgre

VRS is a simple, minimal, free and open source static web server written in Rust
VRS is a simple, minimal, free and open source static web server written in Rust

VRS is a simple, minimal, free and open source static web server written in Rust which uses absolutely no dependencies and revolves around Rust's std::net built-in utility.

A simple url checker for finding fraud url(s) or nearest url

urlchecker A simple url checker for finding fraud url(s) or nearest url while being fast (threading) Eg:- use std::collections::HashMap; use urlchecke

A proof of concept file dropper utilizing PowerShell loosely based off
A proof of concept file dropper utilizing PowerShell loosely based off

A proof of concept file dropper utilizing PowerShell loosely based off

Adapters to convert between different writable APIs.

I/O adapters This crate provides adapters to compose writeable traits in the standard library. The following conversions are available: fmt::Write -

ratlab is a programming platform designed loosely for hobbyist and masochist to analyse and design stuff and things that transform our world?
ratlab is a programming platform designed loosely for hobbyist and masochist to analyse and design stuff and things that transform our world?

ratlab A programming language developed by Quinn Horton and Jay Hunter. ratlab is a programming platform designed loosely for hobbyists and masochists

A dead-simple, extreme fast permission flag system for Rust with no dependencies

A dead-simple, extreme fast permission flag system for Rust with no dependencies

Style terminal outputs in a minimal, macro-based, and dead simple way.

sty 🌈 $\mathbb{\color{red}{Style \ } \color{lightblue}{terminal}\ \color{black}{outputs \ }\color{gray}{\ in\ a} \color{magenta}{\ minimal}\color{gra

A simple, human-friendly, embeddable scripting language

Mica Language reference Β· Rust API A simple, human-friendly scripting language, developed one feature at a time. Human-friendly syntax inspired by Rub

A very-very simple url shortener for Rust

urlshortener-rs A very simple urlshortener for Rust. This library aims to implement as much URL shortener services as possible and to provide an inter

A dead simple ANSI terminal color painting library for Rust.

yansi A dead simple ANSI terminal color painting library for Rust. use yansi::Paint; print!("{} light, {} light!", Paint::green("Green"), Paint::red(

A dead simple functional testing tool for command line applications

Pharaoh : build that test pyramid! What it is Pharaoh is a dead simple, no permission needed, functional test runner for command line applications, wr

Super lightweight and dead-simple CI detection.

This crate tells you if you're in a CI environment or not. It does not tell you which you're in, but it makes a good effort to make sure to accurately

A dead simple configuration language.

Rakh! A dead simple configuration language. No seriously, it's simple. With only 26 lines of code, it's one of the tiniest configuration languages the

πŸ₯… Dead simple webhook worker for Sentry to output events in a Discord channel
πŸ₯… Dead simple webhook worker for Sentry to output events in a Discord channel

πŸ₯… Sentry Webhook Dead simple webhook worker for Sentry to output events in a Discord channel Why? This is just a simple Rust HTTP service to do so, t

A dead-simple tool for working with data in Kafka
A dead-simple tool for working with data in Kafka

ktool - a tool for Kafka ktool is a dead-simple tool for working with data in Kafka: Copy partitions / topics to disk Replay messages Inspect message

A dead simple boilerplate for Rust projects.
A dead simple boilerplate for Rust projects.

boilerplate-rs β€’ A dead simple boilerplate for Rust projects. Project Structure β”œβ”€β”€ assets β”‚ └── logo.png β”œβ”€β”€ bin β”‚ β”œβ”€β”€ Cargo.toml β”‚ └── src β”‚

A dead simple logger that works globally and across threads.

Woody A logger for Rust that's *actually* easy to use. Features Easy to use: Just import the macros and you're good to go. No need to configure anythi

A Turing-complete but dead-simple spaced repetition CLI that helps you learn stuff.

Forne β€” Learn Stuff Forne is a Turing-complete spaced repetition engine to help you learn stuff your way. What does that mean? Well, there are a few p

Owner
Jan Harasym
I don't ever commit here; check me out on https://git.drk.sc/dijit
Jan Harasym
Akasio is a simple HTTP server that redirects traffic based on a JSON redirect table. This is its Rust implementation.

This page is inaccurate and is pending updates. Akasio (Rust) Description Akasio is a simple HTTP server that redirects traffic based on a JSON redire

K4YT3X 5 May 2, 2022
simple static file server written in Rust based on axum framework

static-server simple static file server written in Rust based on axum framework I'm learning Rust and axum. My thought is simple. axum has a static-fi

null 27 Jan 1, 2023
Dynamic routing system for Rocket

rocket_router Dynamic routing system for Rocket Caveats Each file should export only one route, named the same as the file itself. After adding a new

David Arsene 1 Oct 27, 2021
A no-nonsense CAPTCHA system with seamless UX | Backend component

mCaptcha Proof of work based, privacy respecting CAPTCHA system with a kickass UX. STATUS: ACTIVE DEVELOPMENT Skip to demo mCaptcha is a privacy respe

mCaptcha 818 Jan 2, 2023
Sincere is a micro web framework for Rust(stable) based on hyper and multithreading

The project is no longer maintained! Sincere Sincere is a micro web framework for Rust(stable) based on hyper and multithreading. Style like koa. The

null 94 Oct 26, 2022
service_policy_kit is a Rust based toolkit for verifying HTTP services against policies.

Service Policy Kit service_policy_kit is a Rust based toolkit for verifying HTTP services against policies. You can: Build a complete testing framewor

null 19 Dec 5, 2022
Simple http server in Rust (Windows/Mac/Linux)

How it looks like? Screenshot Command Line Arguments Simple HTTP(s) Server 0.6.1 USAGE: simple-http-server [FLAGS] [OPTIONS] [--] [root] FLAGS:

LinFeng Qian 788 Dec 28, 2022
Simple and fast web server

see Overview Simple and fast web server as a single executable with no extra dependencies required. Features Built with Tokio and Hyper TLS encryption

null 174 Dec 9, 2022
OxHTTP is a very simple synchronous HTTP client and server

OxHTTP is a very simple synchronous implementation of HTTP 1.1 in Rust. It provides both a client and a server.

Oxigraph 13 Nov 29, 2022
Tiny-lsm - super simple in-memory blocking LSM for constant-size keys and values

tiny-lsm Super simple in-memory blocking LSM for constant-size keys and values. Despite being single-threaded and blocking, this is still capable of o

Tyler Neely 50 Oct 15, 2022