Skip to main content

Overview

There are several ways you can use karrio :

  • Karrio Open-Source

    You're a large company with the need to self-host or an engineer looking to use the open-source version.

  • Karrio Insiders

    Karrio Insiders is built for large companies with significant data isolation requirements.

Architecture Overview

karrio has three main components:

  1. The first component is the karrio SDK which unifies and standardize the communication to shipping carriers to one interface. It is designed to be extensible to allow integration of additional carrier support.

  2. The second component is the karrio server which is the backend server that exposes a Shipping REST API and a GraphQL API. The server is written in Python with Django. It maintains its state in a PostgresSQL database.

  3. The third component is the karrio dashboard App which implements the user interface that operation members can use for manual fulfilment processes. the app is a Nextjs application that runs in the browser and talks to the karrio server using the REST and Graph APIs.

Karrio Typescript SDK

Karrio Typescri...

Karrio Server

(Django)

Karrio Server...

Database


(Postgres)

Database...

Workers


(Huey)

Workers...

Karrio
Dashboard


(Nextjs)

Karrio...

Typescript

Typescript

REST + GraphQL

REST + GraphQL

Karrio SDK

(Python)

Karrio SDK...

Viewer does not support full SVG 1.1

Extensibility

The obvious way to extend the karrio server would be to download the source code and modify it directly. After all it's an open-source platform. We advise against this as experience teaches us that once your codebase diverges from the upstreamkarrio , it becomes hard to keep it updated.

Because of this we advice the development of Apps that are external applications that talk to karrio server using its GraphQL and REST APIs additionally, they can subscribe to events using webhooks.

Karrio Server

Karrio Server

REST + GraphQL

REST + GraphQL

App


App

Webhooks

Webhooks

Viewer does not support full SVG 1.1

REST API

Karrio brings a set of APIs to interact with shipping provider services. You can use the karrio REST OpenAPI to get live rates, generate labels, track shipments, manage pickups and more.

Learn more about Karrio REST API here.

GraphQL API

Karrio offer the possibility to store the shipping data related to your shipping operations in a database. The karrio GraphQL API allows you to access, query and visualize that data.

Learn more about Karrio GraphQL here.

Carrier Extensions

In addition to being open source, karrio exposes its low level shipping SDK that abstracts the shipping provider integration constructs. This allows you to add your custom shipping carrier integration to the karrio umbrella.

Learn more about Karrio SDK here.