Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jovoro/geminid
Gemini Server in C
https://github.com/jovoro/geminid
Last synced: 3 months ago
JSON representation
Gemini Server in C
- Host: GitHub
- URL: https://github.com/jovoro/geminid
- Owner: jovoro
- License: bsd-3-clause
- Created: 2020-05-14T15:08:26.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-04-29T08:36:50.000Z (over 2 years ago)
- Last Synced: 2024-05-18T19:24:59.648Z (6 months ago)
- Language: C
- Size: 155 KB
- Stars: 40
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gemini - geminid - Gemini Server in C. (Servers / Graphical)
README
# geminid
A Gemini Server in C. Please note that this is not production-ready code.
The current state is a result of a few hours of hacking, barely able to even
serve content. But the goal is to have a compliant gemini server written in C.## Prerequisites
A Unix-like or POSIX-compliant OS is required. OpenSSL 1.1.1 is recommended. If you build with an earlier version, I assume it is one which at least supports TLS 1.2. You need to define `TLS_USE_V1_2_METHOD` if you want to use TLS 1.2. If you want to use even older versions, you need to modify the source code in tls.c to use the appropriate version-specific method. OpenSSL 3.0 has been tested successfully.I've added a more sophisticated URL parser which is based on lex/flex, so you need that, too. As of 2020-05-20 there is a new configuration file introduced which requires libconfig as a dependency.
## Building
Edit Makefile and gemini.h to your needs, do `make geminid`. There is a test program for the URL parser, which can be built with `make parseurl`. If you have non-standard include or library paths, you can use `INCDIRS` and `LIBDIRS`, respectively. You are advised to include local modifications in a separate file Makefile.local, which will be included if it exists.So, if you are on BSD, you might want to do
```
cat > Makefile.local < Makefile.local <`: Path to the configuration file
- `-t`: Test and print configuration## Complaining
To vent your anger, you may reach me at jr at vrtz dot ch.You can find a demonstration of it running at gemini://gemini.uxq.ch/ and some more information on how I run it at gemini://gemini.uxq.ch/running.gmi; However, please be aware that this machine will go offline on 2022-05-30, since I'm switching jobs and therefore will not have access to a machine with gratis internet feed.