Awesome Open Source
Awesome Open Source



What is TAC ?

  • The TAC (Tiny API Cloud) is a server-side solution with tangram. Of course, it also supports the use of secession from tangram; TAC is not a platform, nor a framework, but a development model.


  • Quick publish;
  • Without deploy;
  • Flexible modification
  • Quickly add data sources
  • Client developers directly participate in server-side logic;

Why TAC?

Before TAC

  • Before the birth of TAC, the development mode of most app server-side on Tmall app was like this. Take the home page as an example:
    • Client and server developer discuss the interface data types, fields;
    • The server developer provides a mock interface with parallel development at both ends.
    • Test, deploy, release.
  • The disadvantage of this model is that since the page relies on various data sources, publishing is a long process. If the field is modified, the entire application will be recompiled and packaged. The deployment process is too long; different pages are deployed in different applications. unable to share data source

After TAC

  • TAC access to various commonly used data sources;
  • Clients submit source code directly on TAC, compile, test, and publish;
  • Client development does not require the participation of server-side developer, eliminating the need for communication.
  • Server-side developer focus on developing business logic;

tac develop progress

Quick Start

Install redis

Run container

java -jar tac-container.jar

Run console

java -jar tac-console.jar --admin
  • open console when succes

Code Develop

  • Write your code
public class HelloWorldTac implements TacHandler<Object> {

     * 引入日志服务
    private TacLogger tacLogger = TacInfrasFactory.getLogger();

     * 编写一个实现TacHandler接口的类
     * @param context
     * @return
     * @throws Exception

    public TacResult<Object> execute(Context context) throws Exception {

        // 执行逻辑"Hello World");

        Map<String, Object> data = new HashMap<>();
        data.put("name", "hellotac");
        data.put("platform", "iPhone");
        data.put("clientVersion", "7.0.2");
        data.put("userName", "tac-userName");
        return TacResult.newResult(data);

compile and package

cd tac-dev-source
java -jar tac-console.jar --package --msCode=helloworld


  • Pre-Publish

  • Test-Pre-Publish


  • online check
curl  http://localhost:8001/api/tac/execute/helloworld -s|json
  • Result
  "success": true,
  "msgCode": null,
  "msgInfo": null,
  "data": {
    "helloworld": {
      "data": {
        "name": "hellotac",
        "clientVersion": "7.0.2",
        "userName": "tac-userName",
        "platform": "iPhone"
      "success": true,
      "msCode": "helloworld"
  "hasMore": null,
  "ip": ""

The start params config

Add your own datasource

Use with gitlab

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (31,358