Iris adalah kerangka aplikasi web Golang yang cepat, sederhana namun lengkap, dan sangat efisien.
Iris menyediakan dasar yang ekspresif dan mudah digunakan untuk situs web atau antarmuka aplikasi Anda berikutnya.
Fitur-fitur Iris
- HTTP/2 (push, bahkan data tersemat)
- Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
- Pengelompokan versi API
- Model-View-Controller
- Websockets
- gRPC
- HTTPS otomatis
- Dukungan ngrok bawaan untuk membuat aplikasi Anda online dengan cara tercepat yang memungkinkan
- Router unik dengan parameter jalur dinamis, mendukung tipe standar seperti :uuid, :string, :int, dan pembuatan router kustom
- Kompresi
- Mesin tampilan (HTML, Django, Handlebars, Pug/Jade, dll.)
- Buat server file Anda sendiri dan host server WebDAV Anda sendiri
- Penyimpanan cache
- Lokalisasi (i18n, peta situs)
- Sesi
- Tanggapan kaya (HTML, teks, Markdown, XML, YAML, biner, JSON, JSONP, Protocol Buffers, MessagePack, negosiasi konten, stream, peristiwa yang dikirimkan oleh server, dll.)
- Kompresi tanggapan (gzip, deflate, brotli, snappy, s2)
- Permintaan kaya (ikat kueri URL, header, formulir, teks, XML, YAML, biner, JSON, validasi, Protocol Buffers, MessagePack, dll.)
- Injeksi dependensi (MVC, handler, router API)
- Suite pengujian
Demo
package main
// Impor paket
import "github.com/kataras/iris/v12"
func main() {
// Tentukan contoh iris
app := iris.New()
// Gunakan middleware kompresi gzip
app.Use(iris.Compression)
// Persiapan router
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Halo <strong>%s</strong>!", "Dunia")
})
// Dengarkan pada port
app.Listen(":8080")
}
Uji Kinerja
Kirim 200.000 permintaan dengan parameter dinamis sebagai bilangan bulat, kirim JSON sebagai badan permintaan, dan terima JSON sebagai tanggapan.
Kerangka Kerja | Bahasa Pengembangan | Permintaan per Detik | Latensi | Kepadatan | Waktu Penyelesaian |
---|---|---|---|---|---|
Iris | Go | 238.954 | 521,69us | 64,15MB | 0,84d |
Gin | Go | 229.665 | 541,96us | 62,86MB | 0,87s |
Chi | Go | 228.072 | 545,78us | 62,61MB | 0,88s |
Echo | Go | 224.491 | 553,84us | 61,70MB | 0,89s |
Martini | Go | 198.166 | 627,46us | 54,47MB | 1,01s |
Kestrel | C# | 163.486 | 766,90us | 47,42MB | 1,23s |
Buffalo | Go | 102.478 | 1,22ms | 28,14MB | 1,95s |
Koa | Javascript | 48.425 | 2,56ms | 15,39MB | 4,14s |
Express | Javascript | 23.622 | 5,25ms | 9,04MB | 8,41s |