kite

module
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2026 License: Apache-2.0

README

Kite

一个为微服务开发而设计的 Go 语言框架。

核心特性

  • 简洁的 API 语法 - 轻松定义路由和处理器
  • RESTful 规范 - 默认遵循 REST 最佳实践
  • 配置管理 - 灵活的配置加载和管理
  • 完整的可观测性 - 内置日志、追踪和指标支持
  • 认证中间件 - 开箱即用的认证和自定义中间件
  • gRPC 支持 - 原生支持 gRPC 服务
  • HTTP 服务客户端 - 内置熔断器的 HTTP 客户端
  • 发布/订阅 - 简化的消息队列集成
  • 健康检查 - 所有数据源的自动健康检查
  • 数据库迁移 - 内置迁移管理工具
  • 定时任务 - Cron 任务调度支持
  • 动态日志级别 - 无需重启即可更改日志级别
  • Swagger 文档 - 自动生成和渲染 API 文档
  • 文件系统抽象 - 统一的文件操作接口
  • WebSocket - 原生 WebSocket 支持

快速开始

安装
go get github.com/sllt/kite
简单示例
package main

import "github.com/sllt/kite/pkg/kite"

func main() {
    app := kite.New()

    app.GET("/greet", func(ctx *kite.Context) (any, error) {
        return "Hello World!", nil
    })

    app.Run() // 监听 localhost:8000
}

运行应用:

go run main.go

访问 http://localhost:8000/greet 查看结果。

使用数据库
package main

import (
    "fmt"
    "github.com/sllt/kite/pkg/kite"
)

func main() {
    app := kite.New()

    app.GET("/redis", func(c *kite.Context) (any, error) {
        val, err := c.Redis.Get(c, "key").Result()
        if err != nil {
            return nil, err
        }
        return val, nil
    })

    app.GET("/sql", func(c *kite.Context) (any, error) {
        var result int
        err := c.SQL.QueryRowContext(c, "SELECT 2+2").Scan(&result)
        if err != nil {
            return nil, err
        }
        return result, nil
    })

    app.Run()
}

支持的数据源

Kite 支持广泛的数据存储和服务:

类别 数据源
关系型数据库 MySQL, PostgreSQL, SQLite, Oracle
NoSQL 数据库 MongoDB, CouchBase, ArangoDB, SurrealDB
键值存储 Redis, KV-Store
时序数据库 InfluxDB, OpenTSDB
搜索引擎 Elasticsearch, Solr
列式存储 Cassandra, ScyllaDB, ClickHouse
图数据库 Dgraph
消息队列 PubSub (Kafka, Google PubSub 等)
文件系统 本地文件系统、S3、GCS 等抽象文件系统
数据库路由 DBResolver (多数据源管理)

项目结构

kite/
├── pkg/kite/              # 核心框架代码
│   ├── datasource/        # 数据源连接器
│   ├── metrics/           # 指标收集
│   └── ...
├── examples/              # 示例应用
│   ├── http-server/       # HTTP 服务示例
│   ├── grpc/              # gRPC 示例
│   ├── using-migrations/  # 数据库迁移示例
│   └── ...
└── docs/                  # 文档

文档

许可证

本项目采用 Apache License 2.0 许可证。

贡献

欢迎贡献代码、提出建议或报告问题。

Directories

Path Synopsis
cmd
kite command
examples
http-server command
sample-cmd command
using-cron-jobs command
using-file-bind command
using-publisher command
pkg
kite/datasource
Package datasource contains all the supported data sources in Kite.
Package datasource contains all the supported data sources in Kite.
kite/datasource/file
Package file is a generated GoMock package.
Package file is a generated GoMock package.
kite/datasource/pubsub
Package pubsub provides a foundation for implementing pub/sub clients for various message brokers such as google pub-sub, kafka and MQTT.
Package pubsub provides a foundation for implementing pub/sub clients for various message brokers such as google pub-sub, kafka and MQTT.
kite/datasource/pubsub/google
Package google provides a client for interacting with Google Cloud Pub/Sub.This package facilitates interaction with Google Cloud Pub/Sub, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
Package google provides a client for interacting with Google Cloud Pub/Sub.This package facilitates interaction with Google Cloud Pub/Sub, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
kite/datasource/pubsub/kafka
Package kafka provides a client for interacting with Apache Kafka message queues.This package facilitates interaction with Apache Kafka, allowing publishing and subscribing to topics, managing consumer groups, and handling messages.
Package kafka provides a client for interacting with Apache Kafka message queues.This package facilitates interaction with Apache Kafka, allowing publishing and subscribing to topics, managing consumer groups, and handling messages.
kite/datasource/pubsub/mqtt
Package mqtt provides a client for interacting with MQTT message brokers.This package facilitates interaction with MQTT brokers, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
Package mqtt provides a client for interacting with MQTT message brokers.This package facilitates interaction with MQTT brokers, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
kite/datasource/redis
Package redis provides a client for interacting with Redis key-value stores.This package allows creating and managing Redis clients, executing Redis commands, and handling connections to Redis databases.
Package redis provides a client for interacting with Redis key-value stores.This package allows creating and managing Redis clients, executing Redis commands, and handling connections to Redis databases.
kite/datasource/sql
Package sql provides functionalities to interact with SQL databases using the database/sql package.This package includes a wrapper around sql.DB and sql.Tx to provide additional features such as query logging, metrics recording, and error handling.
Package sql provides functionalities to interact with SQL databases using the database/sql package.This package includes a wrapper around sql.DB and sql.Tx to provide additional features such as query logging, metrics recording, and error handling.
kite/datasource/sql/qb
Package qb provides SQL query builder utilities for dynamic WHERE/ORDER/GROUP/LIMIT style queries and bulk insert/update/delete statements.
Package qb provides SQL query builder utilities for dynamic WHERE/ORDER/GROUP/LIMIT style queries and bulk insert/update/delete statements.
kite/file
Package file provides unified access to various file operations, such as creating, reading, writing files across : - S3 - FTP - SFTP - Local FileSystem
Package file provides unified access to various file operations, such as creating, reading, writing files across : - S3 - FTP - SFTP - Local FileSystem
kite/grpc
Package grpc provides gRPC-related additions within the Kite framework.
Package grpc provides gRPC-related additions within the Kite framework.
kite/http
Package http provides a set of utilities for handling HTTP requests and responses within the Kite framework.
Package http provides a set of utilities for handling HTTP requests and responses within the Kite framework.
kite/http/middleware
Package middleware provides a collection of middleware functions that handles various aspects of request handling, such as authentication, logging, tracing, and metrics collection.
Package middleware provides a collection of middleware functions that handles various aspects of request handling, such as authentication, logging, tracing, and metrics collection.
kite/infra
Package container provides a centralized structure to manage common application-level concerns such as logging, connection pools, and service management.
Package container provides a centralized structure to manage common application-level concerns such as logging, connection pools, and service management.
kite/logging
Package logging provides logging functionalities for Kite applications.
Package logging provides logging functionalities for Kite applications.
kite/metrics
Package metrics provides functionalities for instrumenting Kite applications with metrics.
Package metrics provides functionalities for instrumenting Kite applications with metrics.
kite/migration
Package migration is a generated GoMock package.
Package migration is a generated GoMock package.
kite/service
Package service provides an HTTP client with features for logging, metrics, and resilience.It supports various functionalities like health checks, circuit-breaker and various authentication.
Package service provides an HTTP client with features for logging, metrics, and resilience.It supports various functionalities like health checks, circuit-breaker and various authentication.
kite/websocket
Package websocket is a generated GoMock package.
Package websocket is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL