Ngebut is a web framework for Go designed for speed and efficiency.
Built on top of gnet, a high-performance non-blocking networking library for Go.
⚠️ Maintenance Notice: Ngebut is currently under active development and maintenance. Some APIs may change before the first stable release.
For more detailed documentation, please visit the Go Package Documentation.
graph TD
A[Client Request] --> B[Ngebut Server]
B --> C{Router}
C --> D[Middleware Chain]
D --> E[Route Handler]
E --> F[Context Processing]
F --> G[Response Generation]
G --> H[Client]
subgraph "Ngebut Framework"
B[Ngebut Server<br>gnet-based]
C
D
E
F
G
end
💡 Inspiration: Ngebut is inspired by GoFiber and Hertz Framework, aiming to provide a similar developer experience while leveraging gnet for networking.
# Install the framework
go get github.com/ryanbekhen/ngebut- Efficient Performance: Built on gnet, a high-performance non-blocking networking library for Go
- Simple API: Intuitive and easy-to-use API for rapid development
- Flexible Routing: Supports URL parameters and all standard HTTP methods (GET, POST, PUT, DELETE, etc.)
- Middleware Support: Built-in middleware for access logging and session management
- Group Routing: Organize routes with groups that share common prefixes and middleware
- Context-Based Handling: Request and response handling through a powerful context object
For a quick start, check out this simple example:
package main
import (
"github.com/ryanbekhen/ngebut"
)
func main() {
server := ngebut.New(ngebut.DefaultConfig())
server.GET("/", func(c *ngebut.Ctx) {
c.String("Hello, World!")
})
server.Listen(":8080")
}For detailed documentation on server configuration, routing, middleware, and all other features, please refer to the Go Package Documentation.
For detailed benchmark information, please refer to the Benchmark Documentation.
For comparative benchmarks against other frameworks like Fiber and standard net/http, check out the benchmarks directory.
Contributions are very welcome! Please submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.