README.md
# 🪐 Orbit - a Gemini app framework for Elixir
[](https://hex.pm/packages/orbit)
[](https://hexdocs.pm/orbit/)
A simple framework for a simple protocol.
**🚧 🚧 🚧 Alpha software - under active delopment 🚧 🚧 🚧**
Orbit borrows a lot of ideas from Plug and Phoenix.
- The foundation consists of:
- `Orbit.Capsule` - TLS endpoint that accepts incoming connections (like `Phoenix.Endpoint` and `cowboy` combined)
- `Orbit.Request` - encapsulates the request-response lifecyle (like `Plug.Conn`)
- Your application implements:
- `Orbit.Pipe` - the behaviour for request middleware (like `Plug`)
- `Orbit.Router` - defines pipelines and routes
- `Orbit.Controller` - processes requests and render views
- `Orbit.View` - renders Gemtext content
- Some additional niceties:
- `Orbit.Static` - serves up static content
- `Orbit.Status` - applies response status codes
## There's still a lot TODO!
See the [GitHub project](https://github.com/users/schrockwell/projects/1/views/1) for the latest progress.
## Installation
Orbit can be added to any existing application, including a Phoenix one.
See the [Quick Start](https://hexdocs.pm/orbit/Orbit.html#module-quick-start) guide for installation instructions.