Awesome Open Source
Awesome Open Source


build status report card godocs get support view examples ion channel on slack #get-ion on freenode

Ion is a fast, simple and efficient micro web framework for Go. It provides a beautifully expressive and easy to use foundation for your next website, API, or distributed app.

πŸ“‘ Table of contents

πŸš€ Installation

The only requirement is the Go Programming Language, at least version 1.8.x

$ go get

ion takes advantage of the vendor directory feature. You get truly reproducible builds, as this method guards against upstream renames and deletes.

// file: main.go
package main
import (
func main() {
    app := ion.New()
    // Load all templates from the "./templates" folder
    // where extension is ".html" and parse them
    // using the standard `html/template` package.
    app.RegisterView(ion.HTML("./templates", ".html"))

    // Method:    GET
    // Resource:  http://localhost:8080
    app.Get("/", func(ctx context.Context) {
        // Bind: {{.message}} with "Hello world!"
        ctx.ViewData("message", "Hello world!")
        // Render template file: ./templates/hello.html

    // Start the server using a network address and block.
<!-- file: ./templates/hello.html -->
    <title>Hello Page</title>
$ go run main.go
> Now listening on: http://localhost:8080
> Application started. Press CTRL+C to shut down.
Hello World with Go 1.9

If you've installed Go 1.9 then you can omit the package from the imports statement.

// +build go1.9

package main

import ""

func main() {
	app := ion.New()
	app.RegisterView(ion.HTML("./templates", ".html"))
	app.Get("/", func(ctx ion.Context) {
		ctx.ViewData("message", "Hello world!")


We expect Go version 1.9 to be released in August, however you can install Go 1.9 beta today.

Installing Go 1.9beta2

  1. Go to
  2. Download a compatible, with your OS, archieve, i.e
  3. Unzip the contents of folder to your $GOROOT, i.e C:\Go
  4. Open a terminal and execute go version, it should output the go1.9beta2 version, i.e:
C:\Users\hiveminded>go version
go version go1.9beta2 windows/amd64
Why another new web framework?

ion is easy, it has a familiar API while in the same has far more features than Gin or Martini.

You own your code β€”it will never generate (unfamiliar) code for you, like Beego, Revel and Buffalo do.

It's not just-another-router but its overall performance is equivalent with something like httprouter.

Unlike fasthttp, ion provides full HTTP/2 support for free.

Compared to the rest open source projects, this one is very active and you get answers almost immediately.

πŸ‘₯ Community

Join the welcoming community of fellow ion developers in slack.

🏫 Learn

The awesome ion community is always adding new examples, _examples is a great place to get started!

Read the godocs for a better understanding.

πŸ’™ Support

πŸ₯‡ People

The current lead maintainer is Bill Qeras, Jr.

List of all contributors

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (13,835)Β 
golang (3,499)Β 
high-performance (179)Β 
http2 (128)Β 

Find Open Source By Browsing 7,000 Topics Across 59 Categories