GithubHelp home page GithubHelp logo

tencent / taitank Goto Github PK

View Code? Open in Web Editor NEW
501.0 25.0 45.0 14.13 MB

Taitank is a cross platform lightweight flex layout engine implemented in C++.

Home Page: https://taitank.dev

License: Other

CMake 5.33% C++ 94.00% Shell 0.12% JavaScript 0.01% Python 0.44% Batchfile 0.03% Ruby 0.07%
hippy layout-engine

taitank's Introduction

Taitank Cross Platform Layout

Taitank Group license PRs Welcome node Actions Status Codecov

English | 简体中文 | Homepage

Introduction

Taitank is a cross platform lightweight flex layout engine implemented in C++.

Taitank is now applied in 27 Tencent apps such as Mobile QQ, Mobile QQ Browser, Tencent Video App, QQ Music App,reaching hundreds of millions of ordinary users.

Advantages

  • Fully supported Flex
  • Fast Layout and Low memory consumption
  • Multi platform support

Project structure

├── CMakeLists.txt                    # compiler script.
├── assets                            # assets.
├── benchmark                         # benchmark.
├── examples                          # Taitank layout examples.
├── javascript                        # wasm layout source code.
├── src                               # Taitank layout source code.
├── tests                             # Taitank layout test.
└── toolchain                         # toolchain.

Getting started

Preparing environment

  1. CMake : build Taitank layout.
  2. Android Studio with NDK: build Android so.
  3. Xcode with iOS sdk: build iOS so.
  4. emscripten: build wasm.
  5. Python: script to build Taitank layout.

Build your first library

Change directory to cmake to build your project.

cd cmake

Support Platforms

name description
macos Build library for macos.
linux Build library for linux.
android Build library for android.
ios Build library for ios.
browser & node Build wasm for browser and node.

Testing

For testing we rely on gtest

If you make any changes you should pass all the tests.Tests are located in the tests directory. Run the tests by ececuting build.sh.

cd tests
./build.sh

Benchmarks

Benchmarks are located in the benchmark directory. Run the benchmarks by ececuting build.sh.

cd benchmark
./build.sh

Contribution

Developers are welcome to contribute to Tencent's open source, and we will also give them incentives to acknowledge and thank them. Here we provide an official description of Tencent's open source contribution. Specific contribution rules for each project are formulated by the project team. Developers can choose the appropriate project and participate according to the corresponding rules. The Tencent Project Management Committee will report regularly to qualified contributors and awards will be issued by the official contact.

License

Taitank is Apache-2.0 licensed.

taitank's People

Contributors

churchill-zhang avatar ilikethese avatar zoomchan-cxj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taitank's Issues

Percent value support

Very awesome library.

Is there a way to implement the percentage value support?

For example the width and height values would be percentage too.

Is it possible in the near future?

Thank for answers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.