Home
Softono

Turbo

Open source MIT Go
304
Stars
24
Forks
6
Issues
22
Watchers
4 months
Last Commit

 About Turbo

Turbo is a lightweight microservice tool written in Go that generates a reverse-proxy server translating HTTP requests into gRPC or Thrift requests. It converts existing gRPC or Thrift APIs into HTTP APIs without requiring additional coding. Key features include support for both gRPC and Thrift protocols, RESTful JSON API handling, and service multiplexing. Turbo allows configuration files to be modified and reloaded at runtime without restarting the service. It provides interceptors, preprocessors, and postprocessors for customizable URL-to-RPC mapping, plus a hijacker feature for taking over requests entirely. A convertor component defines how structs are populated. Use cases include exposing internal gRPC or Thrift microservices to external HTTP clients, building RESTful JSON frontends for existing RPC services, and rapid prototyping of API gateways. Turbo requires Go 1.21.3 or higher and Thrift 0.19.0. It is aimed at developers who want to bridge RPC-based backend services with HTTP-based frontend consume

Platforms

Web Self-hosted

Languages

Python Java Go

Need Help Installing Turbo?

We provide expert installation service for this software. Our team will install, configure, and secure Turbo on your server. plans start at just $30.

Turbo  Build Status Coverage Status Go Report Card codebeat badge

最新版本 | Latest Release: 0.5.0

文档地址 | Documentation: https://vaporz.github.io


I'm very happy and ready to help you if you're intersted in Turbo, and want to try it.
Please create an issue if you have encountered any problems or have any new ideas. Thank you!
如果你对Turbo感兴趣,并想试一试,我非常乐意帮助你。
如遇到任何问题,或有新主意,请开issue,谢谢!
(From movie "Turbo")

Features

  • Turbo generates a reverse-proxy server which translates a HTTP request into a grpc/Thrift request.
    (In other words, now you have a grpc|thrift service? Turbo turns your grpc|thrift APIs into HTTP APIs!)
  • Modify and reload configuration file at runtime! Without restarting service.
  • Support gRPC and Thrift.
  • Support RESTFUL JSON API ("application/json").
  • Interceptor.
  • PreProcessor and PostProcessor: customizable URL-RPC mapping process.
  • Hijacker: Take over requests, do anything you want!
  • Convertor: Tell Turbo how to set a struct.
  • Service Multiplexing

Index

Requirements

Golang version: >= 1.21.3

Thrift version: 0.19.0