Skip to main content

Overview

This chapter explains what Go-Sail is.

Introduction

Go-Sail is a lightweight progressive web framework implemented in Go. Rather than reinventing the wheel, it stands on the shoulders of giants by integrating existing excellent components, aiming to help users build stable and reliable services in the simplest way possible. As its name suggests, you can view it as your starting point in the Golang ecosystem. Go-Sail will help you set sail with a light start.
It helps developers focus on their business without being distracted by other trivial matters.

What does Go-Sail do

With continuous version iterations, including but not limited to:

  • Initialize common components
  • Encapsulate common utility classes
  • Start HTTP server and listen for system signals
  • Service registration and discovery
  • Request context management
  • Standardize API error codes
  • Unified response format
  • Service observability
  • And more...

Features of Go-Sail

With continuous version iterations, including but not limited to:

  • HTTP Responder
    • Unified response fields
    • Manage HTTP status codes
    • Manage business codes
  • Component Library
    • Database
    • Email
    • Jwt
    • Kafka
    • Logger
    • Nacos
    • Etcd
    • Nats
    • Redis
  • Service Registration and Discovery
    • Nacos
    • Etcd
  • Utility Classes
    • Encryption and Decryption
    • File
    • ip
    • String
    • Random Number
    • Date and Time
    • ...
  • Log Collection and Export
    • Local Files
    • Exporters
      • Redis
      • Kafka
      • Nats
  • Scheduled Tasks
    • Cancellable
    • One-time
    • Periodic
    • Linux Crontab Style
    • Race Detection
  • Telemetry and Observability
    • Call Chain Tracing
    • Prometheus
    • Pprof
    • Log Exporters
  • API Error Codes
    • Dynamic Injection
    • Internationalization
  • Redis-based Distributed Lock
    • Blocking
    • Non-blocking
  • API Documentation
    • Redocly
    • Swagger

Summary

Go-Sail is highly flexible - developers can use it to build entire service architectures, integrate it into specific functional modules, or just utilize certain features. It all depends on your technical architecture and planning.
In short, it enables developers to build stable and reliable services simply and efficiently.