Skip to content

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

Notifications You must be signed in to change notification settings

ikskuh/zig-serve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zig-serve

project logo

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

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 - Hypertext Transfer Protocol -- HTTP/1.0
  • RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1
  • RFC7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
  • RFC1436 - The Internet Gopher Protocol (a distributed document search and retrieval protocol)
  • Project Gemini - Speculative specification
  • RFC1288 - The Finger User Information Protocol