Skip to content

An instant, full-featured, and scalable REST APIs framework for Go. Designed to make rapid development easy with clean code and best performance.

License

Notifications You must be signed in to change notification settings

zahir-core/grest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GREST

An instant, full-featured, and scalable REST APIs framework with go. Designed to make rapid development easy with clean code and best performance.

It takes care of a lot of the complexities of developing REST APIs so you can focus on the business logic of your app. Build prototypes in minutes and production-ready apps in days. Seriously.

GREST gives you the structure to build service oriented apps from day one. When you eventually need to split your app into microservices it’s an easy transition.

Feature

  • Getting Started
    • Prerequisites
    • CLI
    • Directory Structure
    • Configuration
    • Testing
    • Deployment
  • Basic
    • Routing
    • Middleware
    • Request
    • Response
    • Model
    • Validation
    • Error Handling
    • Logging
  • Database
    • Connecting to Database
    • CRUD
    • Query Builder
    • Migration
    • Seed
    • Cache
  • Security
    • Authentication
    • Authorization
    • Encryption
    • Hashing
    • JWT
    • OAuth
  • Client
    • HTTP Client
    • gRPC Client
  • Notification
    • Mail
    • Telegram
    • Slack
  • More
    • OpenAPI Documentation
    • Frontend Integration
    • File Storage
    • Translation
    • Websocket
    • gRPC Server
    • Scheduling
    • Queue
    • Event

Getting Started

Coming Soon...

Inspired By

Originally, GREST inspired by the following frameworks, however we did it with a different approach, complementing its features, making it easier to use and more flexible with optimal performance and of course with Go ways.

  • Feathers — A framework for real-time applications and REST APIs.
  • LoopBack — A highly extensible Node.js and TypeScript framework for building APIs and microservices.
  • Laravel — The PHP Framework for Web Artisans.
  • Django — A high-level Python web framework that encourages rapid development and clean, pragmatic design.

Library

GREST is REST APIs framework with a "batteries-included" philosophy, it means that GREST comes with most of the libraries and tools required for common use cases, out of the box, so you can focus on the business logic of your application instead of choosing libraries and tools or creating your own. Thanks to the following libraries and tools that help GREST realize that philosophy :

  • Fiber — An Express-inspired web framework written in Go.
  • GORM — The fantastic ORM library for Golang.
  • go-redis — Redis client for Golang.
  • Package validator — Package validator implements value validations for structs and individual fields based on tags.
  • zerolog — Zero Allocation JSON Logger.
  • @stoplight/elements — Beautiful API documentation powered by OpenAPI and Markdown.
  • MinIO Go Client SDK — MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage
  • etc

Contribute

You can help to deliver a better GREST by the following ways:

  • Reporting issues
  • Suggesting new features or enhancements
  • Improve/fix documentation
  • Sending a pull request The core team is monitoring for pull requests. We will review your pull request and either merge it, request changes to it, or close it with an explanation. Pull request should have:
    • Test case
    • Documentation
    • Example (If it makes sense)
  • You can also contribute by:
    • Add a GitHub Star to the project.
    • Tweet about the project on your Twitter.
    • Write a review or tutorial on your youtube channel or personal blog.

By contributing to GREST, you agree that your contributions will be licensed under its MIT license.

License

GREST officialy created, used, and maintained by Zahir Core Team. GREST is free and open-source software licensed under the MIT License.

About

An instant, full-featured, and scalable REST APIs framework for Go. Designed to make rapid development easy with clean code and best performance.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages