Compare commits

...

3 Commits

Author SHA1 Message Date
Jef Roosens 4c1d812a17
chore: bump version to 0.2.0
ci/woodpecker/push/build Pipeline was successful Details
2023-11-19 13:44:16 +01:00
Jef Roosens 4f4ae79920
fix(ci): forgot to add gitea secret 2023-11-19 13:41:59 +01:00
Jef Roosens 45f839ffe2
chore(lander): update readme 2023-11-19 13:25:09 +01:00
3 changed files with 17 additions and 7 deletions

View File

@ -38,6 +38,9 @@ pipeline:
secrets:
- minio_access_key
- minio_secret_key
when:
branch:
exclude: [ release/* ]
publish-rel:
image: 'alpine:3.18.0'
@ -53,5 +56,7 @@ pipeline:
--user "Chewing_Bever:$GITEA_PASSWORD"
--upload-file landerctl/build/landerctl
https://git.rustybever.be/api/packages/Chewing_Bever/generic/lander/"${CI_COMMIT_TAG}"/landerctl-"$(echo '${PLATFORM}' | sed 's:/:-:g')"
secrets:
- gitea_password
when:
event: tag

View File

@ -1,5 +1,16 @@
# Lander
Lander is an HTTP/1.1 server that acts as a URL shortener, pastebin and
file-sharing service. It's written from the ground up in C, complete with an
HTTP framework built on top of an event loop implementation based on [Build
Your Own Redis with C/C++](https://build-your-own.org/redis/). Lookup of
entries is done using an in-memory trie data structure, and on-disk storage
uses a custom binary database format.
The codebase uses one thirdparty library, namely
[picohttpparser](https://github.com/h2o/picohttpparser) for parsing HTTP
requests.
## The idea
A URL shortener has always been on my list of things I'd like to write myself.
@ -10,12 +21,6 @@ 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

View File

@ -1,4 +1,4 @@
VERSION := 0.1.0
VERSION := 0.2.0
BIN_FILENAME = lander