The build platform for native developpers

Get native builds ready in minutes


tipi.build offers fast remote C++, Rust, Swift builds to enable developers to do their best work.


The build platform for native developpers

tipi at a glance

Easy cross platform with tipi

Truly enjoyable cross platform

Get the build machines you need for your project.
Linux, Windows, MacOS or custom environments for other targets, deployed fast & just for you.

More than just compiling
tipi enables borderless cross platform flows by enabling you to do more than builds on the tipi build node: run test and debug remotely as needed.

CMake remote builds
 

tipi is designed for CMake builds. Run your CMake build scripts on our on-demand cloud nodes and benefit from our caching and remoting technology.

C++ and beyond
Discover the tipi caching and cloud platform experience for other languages like Rust and Swift.

Blazing fast cloud builds
 

More power at your fingertip with build machines with hundreds of cores and terabytes of RAM when you need them.

Sized right for your CI
Enjoy builds on machines sized right for your project by building with tipi in your CI workflows: read the documentation
More than just compiling
tipi enables borderless cross platform flows by enabling you to do more than builds on the tipi build node: run test and debug remotely as needed.
C++ and beyond
Discover the tipi caching and cloud platform experience for other languages like Rust and Swift.
Sized right for your CI
Enjoy builds on machines sized right for your project by building with tipi in your CI workflows: read the documentation

Use the tools you know & love

Discover about all integrations in our documentation

Nerdy stats

Using tipi

Our unique combination of ready made environments, from-source dependency management and automatic-caching backed remote builds for CMake is designed to make building C++ applications at scale a truly enjoyable experience.

Discover what tipi's Code. Reuse. Build. is all about!

Code.


Reuse.


Build.

Code.

Code instead of writing build scripts or describing package.

tipi eases developers onboarding by providing simple access to well configured C++ toolchains in minutes. Remotly and on your dev box.

Get started in minutes

Getting tipi is a single click or command away:

Reuse.

One simple paradigm: everything is a library.

tipi's approach to dependency management is based on a simple - declarative - way to describe your project's dependency tree. Read the .tipi/deps documentation.

You tell tipi where the dependency is to be found (and optionally things like which version of it you want) and it will do the heavy lifting for you:

  1. Fetch the sources
  2. Resolve sub-dependencies
  3. Build (by using the existing CMake build system or generating one on the fly)
  4. Make it find_package()-able for the project depending on it
  5. Automatically cache the build tree
  6. Proceed up the dependency tree 'till everything is done

Depending on someone else's lib just works

Example

Depending on nlohmann/json release v3.10.4 from Github and build the dependency using tipi's CMake build system generator excluding a couple of folders from the scan.

{
  "nlohmann/json" : { 
    "@" : "v3.10.4",
    "x": [ "/benchmarks", "/tests", "/docs", "/tools" ]
  }
}

Let's add boostorg/boost boost::filesystem and boost::uuid version 1.80.0 as a dependency to our project and have tipi rely on the exiting CMakeList.txt of that project by adding "u": true to the dependeny:

{
  "nlohmann/json" : { 
    "@" : "v3.10.4",
    "x": [ "/benchmarks", "/tests", "/docs", "/tools" ]
  },
  "boostorg/boost": {
    "@": "boost-1.80.0",
    "u": true, /** <== THIS */
    "opts": "set(BOOST_INCLUDE_LIBRARIES filesystem uuid)",
    "packages": [
        "boost_filesystem",
        "boost_uuid"
    ],
    "targets": [
        "Boost::filesystem",
        "Boost::uuid"
    ]    
  }
}

Read about the full example here: Getting started with C++ & tipi

Build.

Run local and remote builds in seconds, automatic caching included.

tipi deploys ready made images to powerful, single user cloud nodes in seconds and runs your build remotely. You can switch the build target easily and even provide your own environment description if required.

Additionally you can also execute your tests and run your application on the tipi remote node to improve developer feedback.

Using tipi in your CI pipeline eliminates environment differences between developers machines and CI/CD. This bring the CI to your fingertips and reduces cost by enabling cache sharing.

Enjoy fast & easy remote CMake Builds with tipi

Run a remote build

Easily build for different remote OSes and toolchains by selecting one of our build targets:

$ tipi build . -t linux 
...
$ tipi build . -t windows 
...

Read more about how to run builds (for example locally) in our documentation

A tipi build in real-time

In this demo we are running a local linux build with post-build test execution of the project tipi-build/simple-example.

Try it yourself:

$ git clone https://github.com/tipi-build/simple-example/
$ cd simple-example
$ tipi . -t linux --test all
(or for a remote build for another platform)
$ tipi build . -t windows

Made with love in Zürich

tipi is made with ❤️ in beautiful Switzerland by an international team

Community 🫶

We want to see C++ and the whole ecosystem flourish. We contribute to the continued evolution of C++ and the ecosystem through our memberships at the ISO as well as at the Standard C++ Foundation.
We are sponsoring community events and we offer opportunities to facilitate contributions to the ISO C++ Standard. Get in touch with us to learn more about this.

Tipi is a member the Standard C++ Foundation

Meet us here

Upcomming events:

(currently none)


Past events:

Nov
12 - 14

2023

MeetingCPP 2023

Nov
29

2023

Zürich C++ November Meetup

Sponsored by tipi

Register on Meetup now: C++ Zürich Meetup