Skip to content
/ iris Public
forked from kataras/iris

⚡Highly scalable Web Application Framework written in Go Programming Language. Comes with the highest performance achieved so far, while providing robust set of features. Embrace the future, today

License

Notifications You must be signed in to change notification settings

hilerchyn/iris

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iris Web Framework

Build Status Go Report Card Gitter GoDoc License

Iris: Community-driven, mini web application framework for Go Programming Language. Comes with the highest performance so far.

Easy to learn while providing robust set of features for building modern web applications.

Hi Iris GIF

<!-- ./templates/hi.html -->
<html><head> <title> Hi Django-syntax </title> </head>
  <body>
    <h1> Hi {{ Name }}
  </body>
</html>
// ./main.go
import  "github.com/kataras/iris"

func main() {
	iris.Config().Render.Template.Minify = true // defaults to true already :)
    iris.Config().Render.Template.Engine = iris.PongoEngine

	iris.Get("/hi", hi)
	iris.Listen(":8080")
}

func hi(ctx *iris.Context){
   ctx.Render("hi.html", map[string]interface{}{"Name": "iris"})
}

Learn about configuration and render.

Features

  • Switch between template engines: Select the way you like to parse your html files, switchable via one-line-configuration, read more
  • Typescript: Auto-compile & Watch your client side code via the typescript plugin
  • Online IDE: Edit & Compile your client side code when you are not home via the editor plugin
  • Iris Online Control: Web-based interface to control the basics functionalities of your server via the iriscontrol plugin. Note that Iris control is still young
  • Subdomains: Easy way to express your api via custom and dynamic subdomains*
  • Named Path Parameters: Probably you already know what that means. If not, It's easy to learn about
  • Custom HTTP Errors: Define your own html templates or plain messages when http errors occurs*
  • Internationalization: i18n
  • Bindings: Need a fast way to convert data from body or form into an object? Take a look here
  • Streaming: You have only one option when streaming comes in game*
  • Middlewares: Create and/or use global or per route middlewares with the Iris' simplicity*
  • Sessions: Sessions provides a secure way to authenticate your clients/users, access them via Context or the "Low-level" api *
  • Realtime: Realtime is fun when you use websockets*
  • Context: Context is used for storing route params, storing handlers, sharing variables between middlewares, render rich content, send file and much more*
  • Plugins: You can build your own plugins to inject the Iris framework*
  • Full API: All http methods are supported*
  • Party: Group routes when sharing the same resources or middlewares. You can organise a party with domains too! *
  • Transport Layer Security: Provide privacy and data integrity between your server and the client*
  • Multi server instances: Besides the fact that Iris has a default main server. You can declare as many as you need*
  • Zero configuration: No need to configure anything, unless you're forced to. Default configurations everywhere, which you can change with ease
  • Zero allocations: Iris generates zero garbage

Install

The only requirement is Go 1.6

$ go get -u github.com/kataras/iris

If you are connected to the Internet through China click here

How to use

If you'd like to discuss this package, or ask questions about it, feel free to

  • Post an issue or idea here
  • Chat with us

Open debates

Benchmarks

Benchmarks results taken from external source, created by @smallnest.

This is the most realistic benchmark suite than you will find for Go Web Frameworks. Give attention to its readme.md.

May 12 2016

Benchmark Wizzard Processing Time

click here to view detailed tables of different benchmarks

Versioning

Current: v3.0.0-alpha.4

Read more about Semantic Versioning 2.0.0

Third party packages

Contributors

Thanks goes to the people who have contributed code to this package, see the

Todo

for the next release 'v3'

  • Implement a middleware or plugin for easy & secure user authentication, stored in (no)database redis/mysql and make use of sessions.
  • Create server & client side (js) library for .on('event', func action(...)) / .emit('event')... (like socket.io but supports only websocket).
  • Find and provide support for the most stable template engine and be able to change it via the configuration, keep html/templates support.
  • Extend, test and publish to the public the Iris' cmd.

I am a student at the University of Central Macedonia. I spend all my time in the construction of Iris, therefore I have no income value.

If you think that any information you obtained here is worth some money, feel free to send any amount through paypal, thanks.

License

This project is licensed under the MIT License. License can be found here.

About

⚡Highly scalable Web Application Framework written in Go Programming Language. Comes with the highest performance achieved so far, while providing robust set of features. Embrace the future, today

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%