https://github.com/Psi-Prod/Mehari
A cross-platform library for building Gemini servers
https://github.com/Psi-Prod/Mehari
gemini gemini-server mirageos
Last synced: about 1 year ago
JSON representation
A cross-platform library for building Gemini servers
- Host: GitHub
- URL: https://github.com/Psi-Prod/Mehari
- Owner: Psi-Prod
- License: lgpl-3.0
- Created: 2022-11-05T20:32:01.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-05-07T19:01:17.000Z (about 1 year ago)
- Last Synced: 2025-05-07T20:19:20.619Z (about 1 year ago)
- Topics: gemini, gemini-server, mirageos
- Language: OCaml
- Homepage: https://docs.heyplzlookat.me/mehari/
- Size: 376 KB
- Stars: 37
- Watchers: 1
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gemini - Mehari - Featureful server in OCaml (Servers / Graphical)
README
# Mehari
Mehari is a cross-platform library for building Gemini servers. It fully
implements the
[Gemini protocol specification](https://geminiprotocol.net/docs/protocol-specification.gmi).
It takes heavy inspiration from [Dream](https://github.com/aantron/dream), a
tidy, feature-complete Web framework.
Mehari provides several packages. See [here](https://docs.heyplzlookat.me/mehari/index.html#interface).
Many [examples](https://github.com/Psi-Prod/Mehari/tree/master/examples) are also provided.
## Installation
```
opam install mehari
```
## Features
- Mirage OS friendly
- Static files serving
- MIME type inference from file content (using experimental [Conan](https://github.com/mirage/conan/) support)
- Rate limit
- Virtual hosting using SNI
- CGI
- Long-running TCP connection
## Feedback
Since Mehari is in its early stages, any feedback and contributions regarding the API or security are appreciated.
## Important links
- API documentation: https://docs.heyplzlookat.me/mehari/
- Tutorial: https://docs.heyplzlookat.me/mehari/index.html#tutorial
- Issues: https://github.com/Psi-Prod/Mehari/issues
## License
Distributed under the **LGPL-3.0 License**. See [license](LICENSE) for more information.