Added a readme
ci/woodpecker/push/woodpecker Pipeline failed Details

trie-skips
Jef Roosens 2022-11-16 13:05:09 +01:00
parent 9c3af74e1b
commit 94f7400169
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
3 changed files with 26 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
build/
compile_commands.json
lander.data

22
README.md 100644
View File

@ -0,0 +1,22 @@
# Lander
## The idea
A URL shortener has always been on my list of things I'd like to write myself.
It's simple, yet useful.
for our Algorithms & Datastructures 3 class, we had to implement three
different tries (Patricia trie, ternary trie, and a custom one). Considering
these are efficient string-based search trees, this gave me the idea to use it
as the backend for a URL shortener!
This implementation currently uses a ternary trie as its search tree. The
persistence model is very simple; I simply append a line to a text file every
time a URL is added, and add the lines of this file to the trie on startup. The
trie is stored completely im memory, and no I/O operations are required when
requesting a redirect. This makes the server very fast.
## The name
I gave up giving my projects original names a long time ago, so now I just use
the names of my friends ;p

View File

@ -10,4 +10,7 @@ if [ "$1" = add ]; then
-H "X-Api-Key: $API_KEY" \
"$URL/$2"
echo "$URL/$2"
elif [ "$1" = get ]; then
curl -is "$URL/$2" | grep -Po '(?<=location: ).*'
fi