Skip to content

ryanbekhen/ngebut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub release Go Dev License Go Report Card Unit Tests

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.

📚 Documentation

For more detailed documentation, please visit the Go Package Documentation.

🏗️ Architecture

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
Loading

💡 Inspiration: Ngebut is inspired by GoFiber and Hertz Framework, aiming to provide a similar developer experience while leveraging gnet for networking.

⚡️ Quick Start

# Install the framework
go get github.com/ryanbekhen/ngebut

✨ Features

  • 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

🚀 Basic Example

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")
}

📖 Documentation

For detailed documentation on server configuration, routing, middleware, and all other features, please refer to the Go Package Documentation.

📊 Benchmarks

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.

🤝 Contributing

Contributions are very welcome! Please submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Ngebut a fast web framework

Resources

License

Security policy

Stars

Watchers

Forks

Contributors 7