All Projects → gsquire → yaus

gsquire / yaus

Licence: MIT license
Deprecated URL shortener

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to yaus

ShortURL-Services-List
A list of 600+ URL shorteners (i.e goo.gl, bit.ly)
Stars: ✭ 32 (+23.08%)
Mutual labels:  url-shortener
em-shorty
Another URL shortener based on Event Machine and rack-fiber_pool
Stars: ✭ 56 (+115.38%)
Mutual labels:  url-shortener
FireShort
A URL Shortener made using React.JS and Google Firestore
Stars: ✭ 29 (+11.54%)
Mutual labels:  url-shortener
goalie-url-shortener
An implementation of go/ vanity-urls with LDAP support that makes it simple to access internal web assets on a coorporate network.
Stars: ✭ 16 (-38.46%)
Mutual labels:  url-shortener
node-url-shortener
URL Shortener in Base58 using Node.js, Express, Sequelize, Mocha and Bootstrap
Stars: ✭ 21 (-19.23%)
Mutual labels:  url-shortener
Becoditive-API
The official API of beCoditive with many endpoints like memes, animals, image manipulation, url shortner, etc.
Stars: ✭ 14 (-46.15%)
Mutual labels:  url-shortener
redir
🧭 Full-featured, self-hosted URL shortener.
Stars: ✭ 61 (+134.62%)
Mutual labels:  url-shortener
dwarf
A O(1) URL shortener microservice backed by redis and gRPC communication.
Stars: ✭ 33 (+26.92%)
Mutual labels:  url-shortener
secusu
SЁCU is a public API to store self-destructing data payloads with url shortener and handle anonymous chat-rooms.
Stars: ✭ 24 (-7.69%)
Mutual labels:  url-shortener
yii2-minify-url
Project on YII2 framework for create short url (url shortener)
Stars: ✭ 15 (-42.31%)
Mutual labels:  url-shortener
shorty
URL shortener available as library, microservice (even containerized), aws lambda, and azure function
Stars: ✭ 31 (+19.23%)
Mutual labels:  url-shortener
KuttSharp
🔪 .NET Package for kutt.it url shortener
Stars: ✭ 29 (+11.54%)
Mutual labels:  url-shortener
tiny0
Custom URL shortener in Flask.
Stars: ✭ 60 (+130.77%)
Mutual labels:  url-shortener
bingus.link
A free, private URL shortener
Stars: ✭ 19 (-26.92%)
Mutual labels:  url-shortener
1y
A template project to build a short URL manager with Eleventy
Stars: ✭ 68 (+161.54%)
Mutual labels:  url-shortener
1pt
A URL shortener with protection against malicious redirects
Stars: ✭ 20 (-23.08%)
Mutual labels:  url-shortener
url-shortener
A URL Shortener Application built with Node.js, Express and MongoDB
Stars: ✭ 16 (-38.46%)
Mutual labels:  url-shortener
laravel-url-shortener
URL shortener for Laravel
Stars: ✭ 26 (+0%)
Mutual labels:  url-shortener
delta
A modern file uploader + URL shortner written in node for your private cloud. low memory overhead + secure
Stars: ✭ 103 (+296.15%)
Mutual labels:  url-shortener
miniurl
A production-ready URL shortener microservice.
Stars: ✭ 20 (-23.08%)
Mutual labels:  url-shortener

This website no longer exists, but the code will remain here. Please open an issue if you have any questions.

yaus

Yet Another URL Shortener in Rust.

YAUS was inspired by this comment on HN. I had wanted to write a web service in Rust and thought it would be a simple exercise to demonstrate Rust's strengths in speed and safety.

It is implemented using the Iron framework with SQLite for storing the urls. The site has NGINX sitting in front as a reverse proxy as well.

Implementation

This app uses Iron's persistent crate to share the SQLite connection between the handlers. The pooling is provided by r2d2.

To generate the short URL identifier it uses the first seven bytes from the SHA-2 hash of the original URL. Again, I may have overlooked any issues with this, but the chance of collision is unlikely.

API

To shorten a URL you can hit the shorten endpoint:

curl https://yaus.pw/shorten?url=[1]

[1]: A valid URL

Responses:

  • 200 The shortened URL exists and has been returned.
  • 201 The new shortened URL has been created and returned.
  • 400 Invalid request, see the error message.

To retrieve the shortened URL:

curl https://yaus.pw/[1]

[1]: A valid short identifier

Responses:

  • 301 The URL has been redirected.
  • 404 The identifier has not been found.

Future Goals

  • Share the necessary packages used to build and run the service
  • Make the app configurable
  • Share NGINX configuration and how to install a certificate with LetsEncrypt
  • Add an HTML form to use through a browser
  • Add expiration to the links to keep the database from growing too big

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].