Skip to content

goserve is a robust Go backend architecture. It offers a performant and scalable framework, emphasizing feature separation, clean code, and testability. Ideal for REST API development, goserve simplifies unit and integration testing, ensuring high-quality, production-ready applications with ease.

License

Notifications You must be signed in to change notification settings

afteracademy/goserve

Go Tests Go Report Card GoDoc License

GoServe

Production-Ready Go Backend Architecture Framework

Banner

A comprehensive, production-ready framework for building scalable Go backend services with PostgreSQL, MongoDB, Redis, and NATS microservices support.

Documentation

Getting Started

Features

  • Clean Architecture - Well-structured, maintainable codebase following Go best practices
  • HTTP Server - Built on Gin framework with middleware support
  • Authentication - JWT-based authentication and authorization
  • Multiple Databases - Support for PostgreSQL, MongoDB, and Redis
  • Microservices - NATS-based microservice communication patterns
  • Validation - Comprehensive request/response validation using validator v10
  • Error Handling - Structured error handling and API responses
  • Testing - Extensive test coverage with mocking support
  • DTOs - Type-safe data transfer objects for common types (UUID, ObjectID, Slug, Pagination)
  • Performance - Optimized for high-throughput production workloads

Core Packages

Package Description
network HTTP routing, middleware, request/response handling, validation
mongo MongoDB connection, query builder, validation utilities
postgres PostgreSQL database connectivity and operations
redis Redis caching and key-value store operations
micro NATS microservice framework for message-based communication
dto Common DTOs (MongoID, UUID, Slug, Pagination)
utility Helper functions for formatting, mapping, random generation
middleware HTTP middleware (error catcher, 404 handler)

Example Projects

Real-world applications built with GoServe:

  1. PostgreSQL API Server
    Complete REST API with PostgreSQL, JWT authentication, and clean architecture

  2. MongoDB API Server
    MongoDB-based backend with flexible schema design

  3. Microservices Example
    NATS-based microservices communication patterns

Technology Stack

Documentation

Comprehensive guides, API references, and examples for all packages

Articles & Tutorials

Contributing

We welcome contributions! Please see our Contributing Guidelines and Code of Conduct.

Development Setup

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/goserve.git
  3. Create a feature branch: git checkout -b feature/your-feature
  4. Make changes and add tests
  5. Run tests: go test ./...
  6. Commit with clear messages: git commit -m "Add feature: description"
  7. Push to your fork: git push origin feature/your-feature
  8. Open a Pull Request

Learn More

Subscribe to AfterAcademy on YouTube for in-depth tutorials and concept explanations:

YouTube

License

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

Support This Project

If you find GoServe useful, please consider:

  • Starring this repository
  • Reporting bugs and issues
  • Suggesting new features
  • Contributing code improvements
  • Sharing with the community

Security

For security concerns, please review our Security Policy.


About

goserve is a robust Go backend architecture. It offers a performant and scalable framework, emphasizing feature separation, clean code, and testability. Ideal for REST API development, goserve simplifies unit and integration testing, ensuring high-quality, production-ready applications with ease.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages