View Source 🪐 Orbit - a Gemini app framework for Elixir
A simple framework for a simple protocol.
Orbit is a framework for building Gemini applications, known as "capsules".
This framework focuses primarily on the Gemini protocol itself, intent on getting a request into your application, handling it, and sending a Gemtext response.
It doesn't make any assumptions about your business logic, backing database, migrations, or anything like that. If you need a database, you can add it manually.
Concepts
Orbit borrows a lot of ideas from Plug and Phoenix.
Orbit.Endpoint
- the TLS server that accepts incoming requests (Phoenix.Endpoint
+cowboy
)Orbit.Request
- encapsulates the request-response lifecyle (Plug.Conn
)Orbit.Pipe
- the behaviour for request middleware (Plug
)Orbit.Router
- defines pipelines and routes (Phoenix.Router
)Orbit.Controller
- processes requests (Phoenix.Controller
)Orbit.Gemtext
- renders Gemtext templates (Phoenix.Component
)
Some additional niceties:
Orbit.Static
- serves up files frompriv/statc
(Plug.Static
)Orbit.Status
- a canonical list of all status codesOrbit.ClientCertificate
- extracts client certificates from the request
Installation
Orbit can be added to a new or existing application, including a Phoenix one.
See the quickstart guide for installation instructions.