2020-02-12 00:05:57 +01:00
< p align = "center" >
2020-04-23 00:33:36 +02:00
< a href = "https://gofiber.io" >
2020-02-21 16:56:32 +01:00
< img alt = "Fiber" height = "125" src = "https://github.com/gofiber/docs/blob/master/static/fiber_v2_logo.svg" >
2020-02-12 00:05:57 +01:00
< / a >
2020-02-21 16:56:32 +01:00
< br >
2020-02-14 02:05:39 +01:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/en.svg" >
2020-02-12 00:05:57 +01:00
< / a >
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_ru.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/ru.svg" >
2020-02-12 00:05:57 +01:00
< / a >
2020-02-12 23:56:51 +03:00
<!-- <a href="https://github.com/gofiber/fiber/blob/master/.github/README_es.md">
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/es.svg" >
2020-02-12 23:56:51 +03:00
< / a > -->
2020-02-12 00:05:57 +01:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_ja.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/jp.svg" >
2020-02-12 00:05:57 +01:00
< / a >
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_pt.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/pt.svg" >
2020-02-12 00:05:57 +01:00
< / a >
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_zh-CN.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/ch.svg" >
2020-02-12 00:05:57 +01:00
< / a >
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_de.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/de.svg" >
2020-02-12 00:05:57 +01:00
< / a >
2020-04-23 22:16:42 +02:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_nl.md" >
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/nl.svg" >
< / a >
2020-02-12 01:03:42 +01:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_ko.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/ko.svg" >
2020-02-12 01:03:42 +01:00
< / a >
2020-02-16 23:42:02 +01:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_fr.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/fr.svg" >
2020-02-16 23:42:02 +01:00
< / a >
2020-02-19 15:48:41 +03:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_tr.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/tr.svg" >
2020-02-19 15:48:41 +03:00
< / a >
2020-03-05 23:20:30 +11:00
< a href = "https://github.com/gofiber/fiber/blob/master/.github/README_id.md" >
2020-03-07 22:15:03 +03:00
< img height = "20px" src = "https://github.com/gofiber/docs/blob/master/static/flags/id.svg" >
2020-03-05 23:20:30 +11:00
< / a >
2020-02-12 00:05:57 +01:00
< br > < br >
< a href = "https://github.com/gofiber/fiber/releases" >
< img src = "https://img.shields.io/github/release/gofiber/fiber?style=flat-square" >
< / a >
2020-04-24 20:09:26 +02:00
< a href = "https://pkg.go.dev/github.com/gofiber/fiber?tab=doc" >
< img src = "https://img.shields.io/badge/go.dev-007d9c?logo=go&logoColor=white&style=flat-square" >
< / a >
2020-04-23 00:33:36 +02:00
< a href = "https://docs.gofiber.io" >
2020-04-04 19:46:04 +02:00
< img src = "https://img.shields.io/badge/api-docs-blue?style=flat-square" >
2020-02-22 11:09:32 +08:00
< / a >
2020-02-12 00:05:57 +01:00
< a href = "#" >
< img src = "https://img.shields.io/badge/goreport-A%2B-brightgreen?style=flat-square" >
< / a >
< a href = "https://gocover.io/github.com/gofiber/fiber" >
< img src = "https://img.shields.io/badge/coverage-91%25-brightgreen?style=flat-square" >
< / a >
2020-04-24 20:09:26 +02:00
< a href = "https://github.com/gofiber/fiber/actions?query=workflow%3ATest" >
< img src = "https://img.shields.io/github/workflow/status/gofiber/fiber/Test?label=tests&style=flat-square" >
2020-02-12 00:05:57 +01:00
< / a >
2020-04-24 20:09:26 +02:00
< a href = "https://github.com/gofiber/fiber/actions?query=workflow%3AGosec" >
< img src = "https://img.shields.io/github/workflow/status/gofiber/fiber/Gosec?label=gosec&style=flat-square" >
2020-04-04 19:46:04 +02:00
< / a >
2020-04-05 11:51:01 +03:00
< a href = "https://t.me/gofiber" >
< img src = "https://img.shields.io/badge/telegram-join%20chat-0088cc?style=flat-square" >
< / a >
2020-02-12 00:05:57 +01:00
< / p >
< p align = "center" >
2020-02-12 23:56:51 +03:00
< strong > Fiber< / strong > es un < strong > framework web< / strong > inspirado en < a href = "https://github.com/expressjs/express" > Express< / a > construido sobre < a href = "https://github.com/valyala/fasthttp" > Fasthttp< / a > , el motor HTTP < strong > más rápido< / strong > para < a href = "https://golang.org/doc/" > Go< / a > . Diseñado para < strong > facilitar las< / strong > cosas para < strong > un< / strong > desarrollo < strong > rápido< / strong > con < strong > cero asignación de memoria< / strong > y < strong > rendimiento< / strong > en mente.
2020-02-12 00:05:57 +01:00
< / p >
2020-02-11 00:33:05 +00:00
## ⚡️ Inicio rápido
```go
package main
import "github.com/gofiber/fiber"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!")
})
app.Listen(3000)
}
```
## ⚙️ Instalación
En primer lugar, [descargue ](https://golang.org/dl/ ) e instale Go. Se requiere `1.11` o superior.
La instalación se realiza con el comando [`go get` ](https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them ) :
```bash
2020-03-04 13:57:49 +01:00
go get github.com/gofiber/fiber/...
2020-02-11 00:33:05 +00:00
```
## 🤖 Puntos de referencia
2020-04-23 00:33:36 +02:00
Estas pruebas son realizadas por [TechEmpower ](https://github.com/TechEmpower/FrameworkBenchmarks ) y [Go Web ](https://github.com/smallnest/go-web-framework-benchmark ) . Si desea ver todos los resultados, visite nuestro [Wiki ](https://docs.gofiber.io/benchmarks ) .
2020-02-11 00:33:05 +00:00
< p float = "left" align = "middle" >
2020-02-11 02:31:22 +01:00
< img src = "https://github.com/gofiber/docs/blob/master/.gitbook/assets//benchmark-pipeline.png" width = "49%" >
< img src = "https://github.com/gofiber/docs/blob/master/.gitbook/assets//benchmark_alloc.png" width = "49%" >
2020-02-11 00:33:05 +00:00
< / p >
## 🎯 Características
2020-04-23 00:33:36 +02:00
- [Enrutamiento ](https://docs.gofiber.io/routing ) robusto
- Servir [archivos estáticos ](https://docs.gofiber.io/application#static )
- [Rendimiento ](https://docs.gofiber.io/benchmarks ) extremo
- [Poca ](https://docs.gofiber.io/benchmarks ) huella de [memoria ](https://docs.gofiber.io/benchmarks )
- [Puntos finales de API ](https://docs.gofiber.io/context ) Express
- Middleware y [próximo ](https://docs.gofiber.io/context#next ) soporte
2020-02-11 00:33:05 +00:00
- Programación [rápida ](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497 ) del lado del servidor
2020-04-23 00:33:36 +02:00
- [Template engines ](https://docs.gofiber.io/middleware#template )
- [WebSocket support ](https://docs.gofiber.io/middleware#websocket )
- [Rate Limiter ](https://docs.gofiber.io/middleware#limiter )
- Available in [10 languages ](https://docs.gofiber.io/ )
- Y mucho más, [explore Fiber ](https://docs.gofiber.io/ )
2020-02-11 00:33:05 +00:00
## 💡 Filosofía
Los nuevos gophers que hacen el cambio de [Node.js ](https://nodejs.org/en/about/ ) a [Go ](https://golang.org/doc/ ) están lidiando con una curva de aprendizaje antes de que puedan comenzar a construir sus aplicaciones web o microservicios. Fiber, como un **marco web** , fue creado con la idea del **minimalismo** y sigue el **camino de UNIX** , para que los nuevos gophers puedan ingresar rápidamente al mundo de Go con una cálida y confiable bienvenida.
Fiber está **inspirado** en Expressjs, el framework web más popular en Internet. Combinamos la **facilidad** de Express y **el rendimiento bruto** de Go. Si alguna vez ha implementado una aplicación web en Node.js ( *utilizando Express.js o similar* ), muchos métodos y principios le parecerán **muy comunes** .
## 👀 Ejemplos
2020-04-23 00:33:36 +02:00
A continuación se enumeran algunos de los ejemplos comunes. Si desea ver más ejemplos de código, visite nuestro [repositorio de Recetas ](https://github.com/gofiber/recipes ) o nuestra [documentación de API ](https://docs.gofiber.io ) .
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
### Routing
2020-02-11 00:33:05 +00:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/#basic -routing
2020-03-23 04:24:14 +01:00
2020-02-16 18:00:14 +01:00
```go
func main() {
app := fiber.New()
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
// GET /john
app.Get("/:name", func(c *fiber.Ctx) {
fmt.Printf("Hello %s!", c.Params("name"))
// => Hello john!
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
// GET /john
app.Get("/:name/:age?", func(c *fiber.Ctx) {
fmt.Printf("Name: %s, Age: %s", c.Params("name"), c.Params("age"))
// => Name: john, Age:
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
// GET /api/register
2020-04-12 15:35:36 +02:00
app.Get("/api/*", func(c *fiber.Ctx) {
fmt.Printf("/api/%s", c.Params("*"))
2020-02-16 18:00:14 +01:00
// => /api/register
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
app.Listen(3000)
}
```
2020-02-11 00:33:05 +00:00
2020-03-04 13:55:12 +01:00
### Serve static files
2020-03-23 04:24:14 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/application#static
2020-03-23 04:24:14 +01:00
2020-03-04 13:55:12 +01:00
```go
func main() {
app := fiber.New()
2020-02-11 00:33:05 +00:00
2020-03-04 13:55:12 +01:00
app.Static("/", "/public")
// => http://localhost:3000/js/script.js
// => http://localhost:3000/css/style.css
app.Static("/prefix", "/public")
// => http://localhost:3000/prefix/js/script.js
// => http://localhost:3000/prefix/css/style.css
app.Static("*", "/public/index.html")
// => http://localhost:3000/any/path/shows/index/html
app.Listen(3000)
}
```
### Middleware & Next
2020-03-23 04:24:14 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/routing#middleware
📖 https://docs.gofiber.io/context#next
2020-03-23 04:24:14 +01:00
2020-02-16 18:00:14 +01:00
```go
func main() {
app := fiber.New()
// Match any route
app.Use(func(c *fiber.Ctx) {
fmt.Println("First middleware")
c.Next()
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
// Match all routes starting with /api
app.Use("/api", func(c *fiber.Ctx) {
fmt.Println("Second middleware")
c.Next()
})
2020-02-11 00:33:05 +00:00
2020-03-23 04:24:14 +01:00
// GET /api/register
app.Get("/api/list", func(c *fiber.Ctx) {
2020-02-16 18:00:14 +01:00
fmt.Println("Last middleware")
c.Send("Hello, World!")
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
app.Listen(3000)
}
```
2020-02-11 00:33:05 +00:00
2020-02-14 02:24:06 +01:00
< details >
2020-03-04 13:55:12 +01:00
< summary > 📚 Show more code examples< / summary >
### Template engines
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/application#settings
📖 https://docs.gofiber.io/context#render
📖 https://docs.gofiber.io/middleware#template
2020-03-21 04:25:56 +01:00
2020-03-23 04:24:14 +01:00
Fiber supports the default [Go template engine ](https://golang.org/pkg/html/template/ )
2020-03-04 13:55:12 +01:00
2020-03-23 04:24:14 +01:00
But if you want to use another template engine like [amber ](https://github.com/eknkc/amber ), [handlebars ](https://github.com/aymerick/raymond ), [mustache ](https://github.com/cbroglie/mustache ) or [pug ](https://github.com/Joker/jade ).
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
You can use our [Template Middleware ](https://docs.gofiber.io/middleware#template ).
2020-03-21 04:25:56 +01:00
2020-03-04 13:55:12 +01:00
```go
2020-03-23 04:24:14 +01:00
package main
import (
"github.com/gofiber/fiber"
"github.com/gofiber/template"
)
2020-03-04 13:55:12 +01:00
func main() {
// You can setup template engine before initiation app:
app := fiber.New(& fiber.Settings{
2020-03-23 04:24:14 +01:00
TemplateEngine: template.Mustache(),
2020-03-04 13:55:12 +01:00
TemplateFolder: "./views",
TemplateExtension: ".tmpl",
})
// OR after initiation app at any convenient location:
2020-03-23 04:24:14 +01:00
app.Settings.TemplateEngine = template.Mustache()
2020-03-04 13:55:12 +01:00
app.Settings.TemplateFolder = "./views"
app.Settings.TemplateExtension = ".tmpl"
// And now, you can call template `./views/home.tmpl` like this:
app.Get("/", func(c *fiber.Ctx) {
c.Render("home", fiber.Map{
"title": "Homepage",
"year": 1999,
})
})
// ...
}
```
### Grouping routes into chains
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/application#group
2020-03-21 04:25:56 +01:00
2020-03-04 13:55:12 +01:00
```go
func main() {
app := fiber.New()
// Root API route
api := app.Group("/api", cors()) // /api
// API v1 routes
v1 := api.Group("/v1", mysql()) // /api/v1
v1.Get("/list", handler) // /api/v1/list
v1.Get("/user", handler) // /api/v1/user
// API v2 routes
v2 := api.Group("/v2", mongodb()) // /api/v2
v2.Get("/list", handler) // /api/v2/list
v2.Get("/user", handler) // /api/v2/user
// ...
}
```
### Middleware logger
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/middleware#logger
2020-03-21 04:25:56 +01:00
2020-03-04 13:55:12 +01:00
```go
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/logger"
2020-03-04 13:55:12 +01:00
)
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
// Optional logger config
2020-03-27 22:42:30 -04:00
config := logger.Config{
2020-03-04 13:55:12 +01:00
Format: "${time} - ${method} ${path}\n",
TimeFormat: "Mon, 2 Jan 2006 15:04:05 MST",
}
2020-03-21 04:25:56 +01:00
// Logger with config
app.Use(logger.New(config))
2020-03-04 13:55:12 +01:00
2020-03-21 04:25:56 +01:00
app.Listen(3000)
2020-03-04 13:55:12 +01:00
}
```
### Cross-Origin Resource Sharing (CORS)
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/middleware#cors
2020-03-04 13:55:12 +01:00
```go
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/cors"
2020-03-04 13:55:12 +01:00
)
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
// CORS with default config
app.Use(cors.New())
2020-03-04 13:55:12 +01:00
app.Listen(3000)
}
```
2020-03-21 04:25:56 +01:00
Check CORS by passing any domain in `Origin` header:
2020-03-04 13:55:12 +01:00
```bash
curl -H "Origin: http://example.com" --verbose http://localhost:3000
```
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
### Custom 404 response
2020-02-11 00:33:05 +00:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/application#http -methods
2020-03-21 04:25:56 +01:00
2020-02-16 18:00:14 +01:00
```go
func main() {
app := fiber.New()
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
app.Static("/public")
2020-03-04 13:55:12 +01:00
2020-02-16 18:00:14 +01:00
app.Get("/demo", func(c *fiber.Ctx) {
c.Send("This is a demo!")
})
2020-03-04 13:55:12 +01:00
2020-02-16 18:00:14 +01:00
app.Post("/register", func(c *fiber.Ctx) {
c.Send("Welcome!")
})
// Last middleware to match anything
app.Use(func(c *fiber.Ctx) {
2020-03-21 04:25:56 +01:00
c.SendStatus(404)
// => 404 "Not Found"
2020-02-16 18:00:14 +01:00
})
app.Listen(3000)
}
```
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
### JSON Response
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/context#json
2020-03-21 04:25:56 +01:00
2020-02-16 18:00:14 +01:00
```go
2020-03-04 13:55:12 +01:00
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
2020-02-16 18:00:14 +01:00
func main() {
app := fiber.New()
2020-03-04 13:55:12 +01:00
app.Get("/user", func(c *fiber.Ctx) {
c.JSON(& User{"John", 20})
2020-03-21 04:25:56 +01:00
// => {"name":"John", "age":20}
2020-03-04 13:55:12 +01:00
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
app.Get("/json", func(c *fiber.Ctx) {
2020-03-21 04:25:56 +01:00
c.JSON(fiber.Map{
"success": true,
"message": "Hi John!",
2020-03-04 13:55:12 +01:00
})
2020-03-21 04:25:56 +01:00
// => {"success":true, "message":"Hi John!"}
2020-02-16 18:00:14 +01:00
})
2020-02-11 00:33:05 +00:00
2020-02-16 18:00:14 +01:00
app.Listen(3000)
}
```
2020-02-11 00:33:05 +00:00
2020-03-23 04:24:14 +01:00
### WebSocket Upgrade
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/middleware#websocket
2020-03-21 04:25:56 +01:00
2020-03-04 13:55:12 +01:00
```go
2020-03-21 04:25:56 +01:00
import (
"github.com/gofiber/fiber"
"github.com/gofiber/websocket"
)
2020-03-04 13:55:12 +01:00
func main() {
app := fiber.New()
2020-02-14 02:05:39 +01:00
2020-03-21 04:25:56 +01:00
app.Get("/ws", websocket.New(func(c *websocket.Conn) {
2020-03-04 13:55:12 +01:00
for {
mt, msg, err := c.ReadMessage()
if err != nil {
log.Println("read:", err)
break
}
2020-03-21 04:25:56 +01:00
log.Printf("recv: %s", msg)
2020-03-04 13:55:12 +01:00
err = c.WriteMessage(mt, msg)
if err != nil {
log.Println("write:", err)
break
}
}
2020-03-21 04:25:56 +01:00
}))
2020-02-14 02:05:39 +01:00
2020-03-04 13:55:12 +01:00
app.Listen(3000)
2020-03-21 04:25:56 +01:00
// ws://localhost:3000/ws
2020-03-04 13:55:12 +01:00
}
```
### Recover middleware
2020-04-23 00:33:36 +02:00
📖 https://docs.gofiber.io/middleware#recover
2020-03-21 04:25:56 +01:00
```go
2020-03-04 13:55:12 +01:00
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/recover"
2020-03-04 13:55:12 +01:00
)
2020-02-16 18:00:14 +01:00
func main() {
app := fiber.New()
2020-02-14 02:05:39 +01:00
2020-03-21 04:25:56 +01:00
// Optional recover config
2020-03-27 22:46:11 -04:00
config := recover.Config{
2020-03-21 04:25:56 +01:00
Handler: func(c *fiber.Ctx, err error) {
c.SendString(err.Error())
c.SendStatus(500)
},
}
// Logger with custom config
app.Use(recover.New(config))
2020-02-16 18:00:14 +01:00
app.Listen(3000)
}
```
< / details >
2020-02-14 02:05:39 +01:00
2020-02-11 00:33:05 +00:00
## 💬 Medios
2020-04-09 10:22:42 +03:00
- [Welcome to Fiber — an Express.js styled web framework written in Go with ❤️ ](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497 ) — _03 Feb 2020_
- [Fiber released v1.7! 🎉 What's new and is it still fast, flexible and friendly? ](https://dev.to/koddr/fiber-v2-is-out-now-what-s-new-and-is-he-still-fast-flexible-and-friendly-3ipf ) — _21 Feb 2020_
- [🚀 Fiber v1.8. What's new, updated and re-thinked? ](https://dev.to/koddr/fiber-v1-8-what-s-new-updated-and-re-thinked-339h ) — _03 Mar 2020_
- [Is switching from Express to Fiber worth it? 🤔 ](https://dev.to/koddr/are-sure-what-your-lovely-web-framework-running-so-fast-2jl1 ) — _01 Apr 2020_
- [Creating Fast APIs In Go Using Fiber ](https://dev.to/jozsefsallai/creating-fast-apis-in-go-using-fiber-59m9 ) — _07 Apr 2020_
2020-02-11 00:33:05 +00:00
## 👍 Contribuir
2020-02-12 23:56:51 +03:00
Si quiere **agradecer** y/o apoyar el desarrollo activo de la `Fiber` :
2020-02-11 00:33:05 +00:00
1. Agregue una [estrella de GitHub ](https://github.com/gofiber/fiber/stargazers ) al proyecto.
2020-02-12 23:56:51 +03:00
2. Tuitea sobre el proyecto [en tu Twitter ](https://twitter.com/intent/tweet?text=%F0%9F%9A%80%20Fiber%20%E2%80%94%20is%20an%20Express.js%20inspired%20web%20framework%20build%20on%20Fasthttp%20for%20%23Go%20https%3A%2F%2Fgithub.com%2Fgofiber%2Ffiber ).
2020-02-11 00:33:05 +00:00
3. Escriba una reseña o tutorial en [Medium ](https://medium.com/ ) , [Dev.to ](https://dev.to/ ) o blog personal.
2020-04-23 00:33:36 +02:00
4. Ayúdanos a traducir este `README` y [API Docs ](https://docs.gofiber.io/ ) a otro idioma.
2020-04-24 19:52:24 +02:00
5. Support the project by donating a [cup of coffee ](https://buymeacoff.ee/fenny ).
2020-02-11 00:33:05 +00:00
2020-04-24 19:52:24 +02:00
## ☕ Supporters
Fiber is an open source project that runs on donations to pay the bills e.g. our domain name, gitbook, netlify and serverless hosting. If you want to support Fiber, you can ☕ [**buy a coffee here** ](https://buymeacoff.ee/fenny )
| | User | Donation |
| :--- | :--- | :--- |
 | [@thomasvvugt ](https://github.com/thomasvvugt ) | ☕ x 5
 | [@ekaputra07 ](https://github.com/ekaputra07 ) | ☕ x 5
 | [@bihe ](https://github.com/bihe ) | ☕ x 3
 | @justdave | ☕ x 3
 | [@koddr ](https://github.com/koddr ) | ☕ x 1
 | [@raymayemir ](https://github.com/raymayemir ) | ☕ x 1
 | [@melkorm ](https://github.com/melkorm ) | ☕ x 1
 | [@marvinjwendt ](https://github.com/thomasvvugt ) | ☕ x 1
 | [@toishy ](https://github.com/toishy ) | ☕ x 1
2020-03-23 04:28:00 +01:00
2020-03-27 07:02:15 +01:00
## 💻 Code Contributors
2020-02-11 00:33:05 +00:00
2020-03-27 07:02:15 +01:00
< img src = "https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt = "Code Contributors" style = "max-width:100%;" >
2020-02-11 00:33:05 +00:00
2020-03-27 07:02:15 +01:00
## ⚠️ License
2020-02-11 00:33:05 +00:00
2020-04-24 20:09:26 +02:00
Copyright (c) 2019-present [Fenny ](https://github.com/fenny ) and [Contributors ](https://github.com/gofiber/fiber/graphs/contributors ). `Fiber` is free and open-source software licensed under the [MIT License ](https://github.com/gofiber/fiber/blob/master/LICENSE ). Official logo was created by [Vic Shóstak ](https://github.com/koddr ) and distributed under [Creative Commons ](https://creativecommons.org/licenses/by-sa/4.0/ ) license (CC BY-SA 4.0 International).
**Third party libraries licenses**
- [FastHTTP - MIT ](https://github.com/valyala/fasthttp/blob/master/LICENSE )
- [Schema - BSD-3-Clause ](https://github.com/gorilla/schema/blob/master/LICENSE )