Plynt
Plynt is a modular, framework-agnostic Python library for building external API clients and services.
Plynt focuses on a stable integration foundation:
- framework-agnostic design
- sync and async support from one codebase
- explicit configuration and minimal hidden behavior
- typed settings and reusable middleware patterns
Installation
Supports Python 3.12-3.15 on Linux. Django/DRF extras require Django 6.1.
pip install plynt
Optional extras:
pip install "plynt[httpx]" # httpx2 transport
pip install "plynt[salesforce]" # Salesforce REST connector
Canonical extras matrix
| Extra | Installs | Typical use |
|---|---|---|
httpx |
httpx2 transport backend |
Core HTTP transport for sync and async clients |
grpc |
gRPC and protobuf runtimes | Async gRPC clients and transports |
django |
Django adapter support + httpx2 |
Django integration helpers and cache adapters |
drf |
DRF adapter support + Django + httpx2 |
DRF service mixins and exception mapping patterns |
fastapi |
FastAPI adapter support + httpx2 |
FastAPI dependency wiring for plynt clients |
salesforce |
HTTP, signing, validation, Avro | REST, bulk, AI; combine with grpc for CDC |
Install plynt[grpc,salesforce] for experimental CDC support, including
vendored Pub/Sub messages and the Avro decoder. Real Salesforce-org
validation is still required before production CDC use.
Public API surface
Plynt treats package exports in plynt.base and plynt.http as the main
public contract boundaries for core usage.
- Prefer importing from these package roots instead of internal submodules.
- Internal module paths may evolve as long as public exports remain compatible.
- Compatibility and deprecation policy is defined in ADR-0027.
Salesforce connector
plynt[salesforce] ships a ready-to-use Salesforce REST API integration
with typed query services, Bulk API 2.0, AI APIs, and sync/async support:
from plynt.connectors.salesforce.auth import SalesforceClientCredentialsAuthMiddleware
from plynt.connectors.salesforce.client import SalesforceAPIClient
from plynt.connectors.salesforce.facade import SalesforceAPIFacade
from plynt.http.transport import HttpxSyncTransport
auth = SalesforceClientCredentialsAuthMiddleware(
client_id="...",
client_secret="...",
token_url="https://login.salesforce.com/services/oauth2/token",
)
transport = HttpxSyncTransport(middlewares=[auth])
client = SalesforceAPIClient(auth=auth, transport=transport)
sf = SalesforceAPIFacade(client)
result = sf.query().query("SELECT Id, Name FROM Account LIMIT 5")
for record in result.records:
print(record["Name"])
See the Salesforce connector docs for the full guide including JWT Bearer auth, pagination, bulk ingest, and more.
Generic LLM connector
plynt.connectors.llm provides a provider-agnostic contract for:
- neutral message and completion models,
- sync and async service parity,
- streaming chunk parsing helpers,
- optional tool-calling primitives.
Use it with any API that can map to the generic contract, while keeping
provider-specific fields in opaque provider_extensions payloads.
Project Status
Plynt remains in the 0.x release line. Documented APIs follow the compatibility and deprecation policy in ADR-0027. Current capabilities include HTTP, middleware, caching, streaming, Salesforce REST/Bulk/AI, LLM provider adapters, Django/DRF/FastAPI adapters, and async gRPC.
Release acceptance includes distribution and installation checks. Local and CI tests do not replace validation against real external providers. Non-prerelease GitHub releases are published to PyPI through trusted publishing after the build and installed-wheel checks pass.
Documentation
License
MIT
Metadata
Release files for plynt 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plynt-0.11.0.tar.gz | 679.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plynt-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 928.6 kB
Release files / plynt-0.11.0.tar.gz
| Download URL | plynt-0.11.0.tar.gz |
|---|---|
| Size | 679.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
37c6f279176170d50ac6701e02ab2ccf3d46c0049174109a807ee9c8e21d0728
|
|
BLAKE2b-256 checksum How to use checksums |
f5273197a6fcefd660dc6309ed6167f9e5dade045b4999f3938541fe52d3794a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / plynt-0.11.0-py3-none-any.whl
| Download URL | plynt-0.11.0-py3-none-any.whl |
|---|---|
| Size | 248.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5578eec9f8d8963e28ba84e2c38ed5d3bca0b45cce73b3989f3977b59f975e20
|
|
BLAKE2b-256 checksum How to use checksums |
d86e1e626ed511150d70a252a95cdd53925220cba611fc37b6118dd4b8810416
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log