Tars README

The project's README from github.com/TarsCloud/Tars. As one markdown file: README.md.

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:

Supported languages

For now it supports following languages:

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

Tars (TarsCloud/Tars)

Searching Database…

10.1K ·GitHub
What is this?A high-performance RPC framework built on a name service and the Tars protocol, with an integrated admin platform and flexible scheduling for hosting services. It began as Tencent's in-house TAF and is now a Linux Foundation project.
Is this a framework I code against, or a platform I deploy and run?Both: you write services against RPC libraries for C++, Java, Nodejs, PHP or Go, and deploy the Tars framework itself — name service, monitoring, statistics, configuration and a web admin console — to host and manage them.
How do I get a Tars environment up and running?The README sends newcomers to the installation documentation, first-time deployments to a source deployment guide, and offers Docker as an alternative install path.
Which languages can I write my services in?C++, Java, Nodejs, PHP and Go, each with its own RPC implementation kept as a submodule in this repository.
Is it proven in production or still experimental?It has run in production at Tencent since 2008, with services from hundreds of businesses running on about 16,000 machines, and it is now a Linux Foundation project.
Which operating systems does it actually run on?Linux, Mac (supported only from version 2.1.0) and Windows 7 or newer.
Can I use it in commercial products?Yes — the license is BSD-3-Clause, a permissive open-source license.
What does Tars handle beyond the RPC calls themselves?Out of the box it bundles an extensible encode/decode protocol, the high-performance RPC layer, a name service, monitoring, statistics reporting and centralized configuration, plus a web console to manage services.
What lives inside this repository?Submodules cover the C++ framework core, separate RPC implementations for cpp, java, go, nodejs and php, tup group protocol sources, and the tars web management platform.
Why does versioning get confusing?Tars is split across many repositories, and the framework and language components version independently: since 2.1.0 the framework version tag lives in the tarsframework repo, and each component carries its own.
What is TAF?TAF (Total Application Framework) is Tars's original name at Tencent, where it has been in production use since 2008.
What are similar projects?go-zero, dtm, consul, zuul, redpanda, nsq, xxl-job, brpc
Creator
TarsCloud
Size
15.6 MB
Stars
10.1K
Age
9y
Commits · 90 Days