Retour au classement

TarsCloud/Tars

C++

Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

rpc-frameworkhigh-performancehigh-availabilitymicroservicetars-foundationtars
Croissance des étoiles
Étoiles
10.1k
Forks
2.1k
Croissance hebdomadaire
Issues
48
5k10k
avr. 2017mai 2020juin 2023juil. 2026
README

TARS - A Linux Foundation Project

What is TARS?

TARS is a Linux Foundation project. It is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

Tars, aka TAF(Total Application Framework), has been used in Tencent since 2008. It supports C++, Java, Nodejs and PHP for now. This framework offers a set of solution for development, maintenance and testing, which making development, deployment and testing service efficiently. It integrated extensible protocol for encoding/decoding, high-performance RPC communication framework, name service, monitor, statistics and configuration. You can use it to develop your reliable distributed application based on microservice fast, and reach fully efficient service management.

Nowadays it's used by hundreds of bussiness in Tencent, services that developed base on TAF run on 16 thousands of machines.

See the detailed introduction SUMMARY.md.

Supported platforms

For now it supports OS as below:

  • Linux
  • Mac(>=2.1.0 support)
  • Windows (>= Windows 7)

Supported languages

For now it supports following languages:

  • C++
  • Java
  • Nodejs
  • PHP
  • Go

Version Management

Tars is composed of many modules, scattered in many warehouses, and the basic framework version and language version can develop independently. In view of this, from version 2.1.0, the Framework version tag is printed on the tarsframework warehouse, no longer reflected in the tars warehouse

In addition, each component will have its own version. When there is a version dependency specification, each component will have its own version

Installation

  1. If you are new to Tars, please read documentation installation.
  2. First deploy, please read documentation source.
  3. Install by docker, detail information: docker

Submodule

Directory Features
framework Source code implementation of C++ language framework basic service
cpp C++ language framework rpc source code implementation
java java language framework rpc source code implementation
go go language framework rpc source code implementation
nodejs nodejs language framework rpc source code implementation
php php language framework rpc source code implementation
tup source code implementation of tup group protocol in each language
web manage tars web source implementation

Developer's documentation

See docs.

License

The open-source protocol Tars used is BSD-3-Clause, see LICENSE.md.

Chinese Version

Read Chinese Version

Dépôts similaires
zeromicro/go-zero

A cloud-native Go microservices framework with cli tool for productivity.

GoGo ModulesMIT Licensegolangmicroservice
go-zero.dev
33.2k4.3k
line/armeria

Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.

JavaMavenApache License 2.0httphttp2
armeria.dev
5.1k1k
sofastack/sofa-rpc

SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.

JavaMavenApache License 2.0sofa-rpcsofastack
sofastack.tech/sofa-rpc/docs/Home
3.9k1.2k
google/tarpc

An RPC framework for Rust with a focus on ease of use.

Rustcrates.ioMIT Licenserpc-frameworkasynchronous-programming
3.7k228
luxiaoxun/NettyRpc

A simple RPC framework based on Netty, ZooKeeper and Spring

JavaMavennettyrpc-framework
2.4k1.1k
zeroc-ice/ice

All-in-one solution for creating networked applications with RPC, pub/sub, server deployment, and more.

C++GNU General Public License v2.0rpcice
zeroc.com
2.2k600
suyuan32/simple-admin-core

Simple Admin是一个基于Go Zero开发面向小型到大型项目的分布式微服务后端管理系统脚手架,提供丰富的后台管理功能,支持k8s快速部署,助力快速开发高并发微服务集群,适合学习和商用。Simple Admin is a powerful microservice framework for large management system. It is based on go-zero and supports several advanced features. It can help you to develop a microservice back-end management system in a short time.

GoGo ModulesApache License 2.0gogolang
doc.ryansu.tech/zh
2k336
hprose/hprose-php

Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP

PHPPackagistMIT Licenserpcrpc-library
2k381
fengjiachun/Jupiter

Jupiter是一款性能非常不错的, 轻量级的分布式服务框架

JavaMavenApache License 2.0jupiterrpc
1.5k555
laruence/yar

Light, concurrent RPC framework for PHP & C

COtheryarrpc-framework
1.4k316
unum-cloud/UCall

Web Serving and Remote Procedure Calls at 50x lower latency and 70x higher bandwidth than FastAPI, implementing JSON-RPC & REST over io_uring ☎️

CApache License 2.0cpythonepoll
unum-cloud.github.io/UCall/
1.3k54
hprose/hprose-golang

Hprose is a cross-language RPC. This project is Hprose for Golang.

GoGo ModulesMIT Licenserpcrpc-framework
1.3k199