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

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 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 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 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

Dead simple, minimal SPDX License generator library written in Rust.
Dead simple, minimal SPDX License generator library written in Rust.

lice Dead simple, minimal SPDX License generator library written in Rust. Lice is in beta Install | User Docs | Crate Docs | Reference | Contributing

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