Popularity
6.8
Growing
Activity
5.4
Growing
567
16
41

Programming language: Go
License: MIT License
Tags: Web Frameworks    
Latest version: v1.1.1

Gearbox alternatives and similar packages

Based on the "Web Frameworks" category.
Alternatively, view Gearbox alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Gearbox or a related project?

Add another 'Web Frameworks' Package

README

gearbox :gear: is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x faster than net/http

gearbox seeks to be

  • Secure :closed_lock_with_key:
  • Fast :rocket:
  • Easy to use :eyeglasses:
  • Lightweight

Supported Go versions & installation

:gear: gearbox requires version 1.14 or higher of Go (Download Go)

Just use go get to download and install gearbox

go get -u github.com/gogearbox/gearbox

Examples

package main

import (
    "github.com/gogearbox/gearbox"
)

func main() {
    // Setup gearbox
    gb := gearbox.New()

    // Define your handlers
    gb.Get("/hello", func(ctx gearbox.Context) {
        ctx.SendString("Hello World!")
    })

    // Start service
    gb.Start(":3000")
}

Parameters

package main

import (
    "github.com/gogearbox/gearbox"
)

func main() {
    // Setup gearbox
    gb := gearbox.New()

    // Handler with parameter
    gb.Get("/users/:user", func(ctx gearbox.Context) {
        ctx.SendString(ctx.Param("user"))
    })

    // Start service
    gb.Start(":3000")
}

Middlewares

package main

import (
    "log"

    "github.com/gogearbox/gearbox"
)

func main() {
    // Setup gearbox
    gb := gearbox.New()

    // create a logger middleware
    logMiddleware := func(ctx gearbox.Context) {
        log.Printf("log message!")

        // Next is what allows the request to continue to the next
        // middleware/handler
        ctx.Next()
    }

    // create an unauthorized middleware
    unAuthorizedMiddleware := func(ctx gearbox.Context) {
        ctx.Status(gearbox.StatusUnauthorized)
            .SendString("You are unauthorized to access this page!")
    }

    // Register the log middleware for all requests
    gb.Use(logMiddleware)

    // Define your handlers
    gb.Get("/hello", func(ctx gearbox.Context) {
        ctx.SendString("Hello World!")
    })

    // Register the routes to be used when grouping routes
    routes := []*gearbox.Route{
        gb.Get("/id", func(ctx gearbox.Context) {
            ctx.SendString("User X")
        }),
        gb.Delete("/id", func(ctx gearbox.Context) {
            ctx.SendString("Deleted")
        }),
    }

    // Group account routes
    accountRoutes := gb.Group("/account", routes)

    // Group account routes to be under api
    gb.Group("/api", accountRoutes)

    // Define a route with unAuthorizedMiddleware as the middleware
    // you can define as many middlewares as you want and have
    // the handler as the last argument
    gb.Get("/protected", unAuthorizedMiddleware, func(ctx gearbox.Context) {
        ctx.SendString("You accessed a protected page")
    })

    // Start service
    gb.Start(":3000")
}

Static Files

package main

import (
    "github.com/gogearbox/gearbox"
)

func main() {
    // Setup gearbox
    gb := gearbox.New()

    // Serve files in assets directory for prefix static
    // for example /static/gearbox.png, etc.
    gb.Static("/static", "./assets")

    // Start service
    gb.Start(":3000")
}

Benchmarks

  • CPU 3.1 GHz Intel Xeon® Platinum 8175M (24 physical cores, 48 logical cores)
  • MEMORY 192GB
  • GO go 1.14.6 linux/amd64
  • OS Linux

For more results, check Our Docs

Contribute & Support

Check Our Docs for more information about gearbox and how to contribute

Sponsors

Organizations that are helping to manage, promote, and support Gearbox :gear:

trella: A B2B technology platform and trucking marketplace that connects shippers with carriers

Who uses Gearbox

Gearbox :gear: is being used by multiple organizations including but not limited to


Contributors

Get in touch!

Feel free to chat with us on Discord, or email us at [[email protected]]([email protected]) if you have questions, or suggestions

License

gearbox is licensed under [MIT License](LICENSE)

Logo is created by Mahmoud Sayed and distributed under Creative Commons License

Third-party library licenses


*Note that all licence references and agreements mentioned in the Gearbox README section above are relevant to that project's source code only.