1b22fb2eba
There're some bugs in lestrrat-go Detail: https://github.com/iproj/file-rotatelogs/issues/1 |
||
---|---|---|
_benchmarks | ||
_examples | ||
_proposals | ||
.github | ||
apps | ||
auth | ||
cache | ||
context | ||
core | ||
hero | ||
httptest | ||
i18n | ||
macro | ||
middleware | ||
mvc | ||
sessions | ||
versioning | ||
view | ||
websocket | ||
x | ||
.deepsource.toml | ||
.fossa.yml | ||
.gitattributes | ||
.gitignore | ||
aliases.go | ||
AUTHORS | ||
cli.go | ||
CODE_OF_CONDUCT.md | ||
configuration_test.go | ||
configuration.go | ||
CONTRIBUTING.md | ||
doc.go | ||
FAQ.md | ||
go.mod | ||
go.sum | ||
HISTORY_ES.md | ||
HISTORY.md | ||
iris_guide.go | ||
iris.go | ||
LICENSE | ||
NOTICE | ||
README_ES.md | ||
README_FA.md | ||
README_FR.md | ||
README_GR.md | ||
README_KO.md | ||
README_RU.md | ||
README_ZH.md | ||
README.md | ||
SECURITY.md | ||
VERSION |
Iris Web Framework
Iris is a fast, simple yet fully featured and very efficient web framework for Go.
It provides a beautifully expressive and easy to use foundation for your next website or API.
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
app.Use(iris.Compression)
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})
app.Listen(":8080")
}
More with simple Handler
package main
import "github.com/kataras/iris/v12"
type (
request struct {
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
}
response struct {
ID string `json:"id"`
Message string `json:"message"`
}
)
func main() {
app := iris.New()
app.Handle("PUT", "/users/{id:uuid}", updateUser)
app.Listen(":8080")
}
func updateUser(ctx iris.Context) {
id := ctx.Params().Get("id")
var req request
if err := ctx.ReadJSON(&req); err != nil {
ctx.StopWithError(iris.StatusBadRequest, err)
return
}
resp := response{
ID: id,
Message: req.Firstname + " updated successfully",
}
ctx.JSON(resp)
}
Read the routing examples for more!
Party Controller (NEW)
Head over to the full running example!
MVC
package main
import (
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/mvc"
)
type (
request struct {
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
}
response struct {
ID uint64 `json:"id"`
Message string `json:"message"`
}
)
func main() {
app := iris.New()
mvc.Configure(app.Party("/users"), configureMVC)
app.Listen(":8080")
}
func configureMVC(app *mvc.Application) {
app.Handle(new(userController))
}
type userController struct {
// [...dependencies]
}
func (c *userController) PutBy(id uint64, req request) response {
return response{
ID: id,
Message: req.Firstname + " updated successfully",
}
}
Want to see more? Navigate through mvc examples!
API Guide HOT
package main
import (
// [other packages...]
"github.com/kataras/iris/v12"
)
func main() {
iris.NewGuide().
AllowOrigin("*").
Compression(true).
Health(true, "development", "kataras").
Timeout(0, 20*time.Second, 20*time.Second).
Middlewares(basicauth.New(...)).
Services(
// NewDatabase(),
// NewPostgresRepositoryRegistry,
// NewUserService,
).
API("/users", new(UsersAPI)).
Listen(":80")
}
Learn what others saying about Iris and star this open-source project to support its potentials.
👑 Supporters
With your help, we can improve Open Source web development for everyone!
Donations from China are now accepted!
📖 Learning Iris
Create a new project
$ mkdir myapp
$ cd myapp
$ go mod init myapp
$ go get github.com/kataras/iris/v12@master # or @v12.2.0-beta3
Install on existing project
$ cd myapp
$ go get github.com/kataras/iris/v12@master
Run
$ go mod tidy -compat=1.18
$ go run .
Iris contains extensive and thorough documentation making it easy to get started with the framework.
For a more detailed technical documentation you can head over to our godocs. And for executable code you can always visit the ./_examples repository's subdirectory.
Do you like to read while traveling?
You can request a PDF and online access of the Iris E-Book (New Edition, future v12.2.0+) today and be participated in the development of Iris.
🙌 Contributing
We'd love to see your contribution to the Iris Web Framework! For more information about contributing to the Iris project please check the CONTRIBUTING.md file.
🛡 Security Vulnerabilities
If you discover a security vulnerability within Iris, please send an e-mail to iris-go@outlook.com. All security vulnerabilities will be promptly addressed.
📝 License
This project is licensed under the BSD 3-clause license, just like the Go project itself.
The project name "Iris" was inspired by the Greek mythology.