Skip to content

Installation ​

Open-Logistics ships a TypeScript SDK on npm, a generated Python client on PyPI (distribution open-logistics-sdk, import open_logistics), and a generated Rust client on crates.io.

bash
npm install open-logistics
bash
pip install open-logistics-sdk
bash
cargo add open-logistics

Requirements ​

  • TypeScript: Node.js 18 or newer is recommended because the SDK relies on the built-in fetch API.
  • Python: Python 3.11 or newer.
  • Rust: Rust 2021 edition; TLS is enabled by default via native-tls.

Provider credentials are required for authenticated calls:

  • Shiprocket uses email and password
  • Delhivery uses token and clientName

Choosing an entry point ​

The TypeScript SDK has two layers:

  • OpenLogistics is the recommended entry point. Set provider to "shiprocket" or "delhivery" and use one resource surface for either vendor. See the OpenLogistics client.
  • Shiprocket and Delhivery are the provider-specific facades. They still work and are kept for two more releases. ShiprocketClient and DelhiveryClient remain available for direct-method use.

The Python and Rust clients are provider-specific and do not have an OpenLogistics equivalent yet.

Package metadata ​

RegistryPackageImport
npmopen-logisticsopen-logistics
PyPIopen-logistics-sdkopen_logistics
crates.ioopen-logisticsopen_logistics
  • Repository: https://github.com/kush34/open-logistics
  • License: MIT

Next steps ​

FAQ ​

Which package do I install for Python? ​

pip install open-logistics-sdk. The import name is open_logistics.

Why is the Python package not named open-logistics? ​

open-logistics is already taken on PyPI, so the distribution is published as open-logistics-sdk. The import package is still open_logistics.

Do the Python and Rust clients behave like the TypeScript SDK? ​

They are generated from the same OpenAPI specs and use matching operation names, but they return raw provider payloads rather than the TypeScript SDK's normalized responses. See Python and Rust clients.