Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ikskuh/zig-serve

Server implementations for several protocols in Zig. Includes http(s), gemini and gopher
https://github.com/ikskuh/zig-serve

gemini gemini-protocol gemini-server gopher gopher-protocol gopher-server http http-server https-server server zig zig-package ziglang

Last synced: 2 months ago
JSON representation

Server implementations for several protocols in Zig. Includes http(s), gemini and gopher

Awesome Lists containing this project

README

        

# zig-serve

![project logo](design/logo.png)

A implementation of several network protocols for Zig:

- HTTP 1.1
- Gemini
- Gopher
- Finger

## Disclaimer

**DO NOT USE THESE SERVER IMPLEMENTATIONS IN PRODUCTION!**

They are very much work-in-progress without any warranty of function or correctness. Don't even think about security right now!

## Status

| Protocol | Status |
| -------- | --------------- |
| Finger | โธ Not started |
| Gopher | ๐Ÿงช Experimental |
| Gemini | ๐Ÿงช Experimental |
| HTTP(S) | ๐Ÿงช Experimental |

_Experimental_ means that there is basic support for the protocol, but no spec compliance has been proven yet.

## Development / Tasks

### Create a new self-signed SSL certificate

```sh-console
openssl req -new -x509 -config examples/data/cert-config.cfg -nodes -newkey rsa:2048 -keyout examples/data/key.pem -out examples/data/cert.pem -days 36500
```

### RFCs & Specs

- [RFC1945](https://datatracker.ietf.org/doc/html/rfc1945) - Hypertext Transfer Protocol -- HTTP/1.0
- [RFC2616](https://datatracker.ietf.org/doc/html/rfc2616) - Hypertext Transfer Protocol -- HTTP/1.1
- [RFC7231](https://datatracker.ietf.org/doc/html/rfc7231) - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- [RFC1436](https://datatracker.ietf.org/doc/html/rfc1436) - The Internet Gopher Protocol (a distributed document search and retrieval protocol)
- [Project Gemini](https://gemini.circumlunar.space/docs/specification.gmi) - Speculative specification
- [RFC1288](https://datatracker.ietf.org/doc/html/rfc1288) - The Finger User Information Protocol