Appearance
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-logisticsbash
pip install open-logistics-sdkbash
cargo add open-logisticsRequirements
- TypeScript: Node.js 18 or newer is recommended because the SDK relies on the built-in
fetchAPI. - 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
emailandpassword - Delhivery uses
tokenandclientName
Choosing an entry point
The TypeScript SDK has two layers:
OpenLogisticsis the recommended entry point. Setproviderto"shiprocket"or"delhivery"and use one resource surface for either vendor. See the OpenLogistics client.ShiprocketandDelhiveryare the provider-specific facades. They still work and are kept for two more releases.ShiprocketClientandDelhiveryClientremain available for direct-method use.
The Python and Rust clients are provider-specific and do not have an OpenLogistics equivalent yet.
Package metadata
| Registry | Package | Import |
|---|---|---|
| npm | open-logistics | open-logistics |
| PyPI | open-logistics-sdk | open_logistics |
| crates.io | open-logistics | open_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.