Welcome to QR-RS¶
A simple server and CLI that generates QR Codes and overlays a logo on top of them.
It was developed for GDSC Delft.
The purpose of this is to allow members to easily generate promotional QR Codes to include in banners/slides without having to worry about creating accounts on third-party sites and free-tier limits.
The core library is written in Rust and is a thin wrapper around an existing crate that does the actual QR Code generation.
That core functionality is currently exposed through a web server and a command line tool, the latter of which is recommended for personal use as it is just easier to run.
For details on how to run and use the server or the CLI, refer to their respective pages.
The rest of the stuff mentioned on this page is mostly developer information.
Project Layout¶
The project is currently split into multiple crates
lib
: The core logic of the projectserver
: A server you can run locally to use thelib
cratecli
: A command line interface to thelib
cratecommon
: Some reusable code forserver
andcli
The lib
and cli
crates will be published on crates.io
while the
server
crate will be published as a Docker image.
The cli
might be uploaded to other package managers, however, that's something that I don't
want to tackle alone so if you are looking for a place to contribute, start
here :)
The common
crate contains very little code and there's no reason to publish it on its own.
Deployment¶
The lib
, common
and cli
are now published automatically to crates.io
.
The server
is published to DockerHub. Binaries are generated for the
cli
in Github Releases.
Publishing the cli
on more commonly used package managers
has been suggested but will likely not be
tackled anytime soon (unless you are willing to help!).
Contributing¶
Any feature requests, bug reports or general feedback is welcome!
Feel free to open an issue or start a discussion in the repository.
If you want to contribute with code, you can take a look at the "help wanted" issues as I will most likely not be implementing those myself.
A decent CI pipeline is in place to ensure that everything builds and that all tests pass. I like being strict when it comes to formatting and linting so there is a CI job for that as well.