smithy-core
Core components for implementing Smithy tooling in Python.
What it is and what it does
Smithy-core is a pre-alpha Python library that provides the foundational interfaces and runtime components needed to build service clients from Smithy service models. It is part of a larger tooling ecosystem that includes code generators and handwritten Python modules; together, they enable you to define a service in Smithy, configure a build, and generate an async Python client that can call that service. The package itself contains no generated clients—it is the toolkit that makes client generation possible.
The library is designed for developers who want to generate SDK implementations for Smithy-based services (both AWS and non-AWS). It supports the restJson1 protocol and is built to work with modern Python versions (3.12 and later). Because it is in early development, the project explicitly warns that interfaces are unstable and several features (such as detailed logging) remain unimplemented; it should not be used in production systems yet.
Use it for:
- Generate async Python clients for services defined in Smithy models using the python-client-codegen plugin.
- Generate concrete Python type classes from Smithy shape definitions without building a full client.
- Build custom SDK tooling or extensions on top of Smithy's composable Python interfaces.
- Prototype or develop services that use the restJson1 protocol and want generated Python bindings.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides core Python interfaces and components for building Smithy service clients, enabling code generation of async-capable SDK implementations from Smithy service models.
Yes, if you are actively developing or prototyping Smithy-based services and can tolerate pre-alpha instability and incomplete features. No, if you need production-ready SDK tooling or detailed logging support. The package is actively maintained and has zero known vulnerabilities, but the explicit pre-alpha warning and interface-change disclaimer mean you should treat it as experimental.
Install
smithy-core on PyPI
pip
pip install smithy-coreuv
uv add smithy-corepoetry
poetry add smithy-coreInstalling smithy-core
Before you install
Active maintenance with a recent release (1 day old), supporting current Python versions (3.12+). Pre-alpha status and explicit warning that all interfaces are subject to change; not recommended for production use yet.
License in practice
Apache License 2.0 (permissive); you may use, modify, and distribute this package freely in commercial and open-source projects, provided you include the license notice.
Quickstart
pip install smithy-core==0.8.0
# smithy-core provides runtime interfaces; actual usage depends on generated code from smithy build with python-client-codegen or python-type-codegen plugins.
Requires Python 3.12 or newer. Code generation requires the Smithy CLI, JDK 17+, uv, make, and pandoc to be installed separately; smithy-core itself is only the runtime component.
Verify before relying
- Whether the generated clients work reliably with services other than the restJson1 protocol mentioned in the description.
- Current state of unimplemented features such as detailed logging.
- Whether the package is suitable for any production workloads despite the pre-alpha warning.
- How to use smithy-core directly as a runtime component versus as part of a code generation workflow.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 434,490/month — #6,688 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: smithy_core-0.8.0-py3-none-any.whl
Keywords: sdk, smithy
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
smithy-aws-coreProvides core runtime components and protocol…
permissive · top 15,000 on PyPI
smithy-jsonProvides JSON serialization and deserialization…
permissive · top 15,000 on PyPI
smithy-aws-event-streamProvides low-level Python components for…
permissive · top 15,000 on PyPI
smithy-httpProvides HTTP primitives, interfaces, and…
permissive · top 15,000 on PyPI
aws_sdk_bedrock_runtimeProvides a Python client for interacting with…
permissive · top 15,000 on PyPI
sanic-testingProvides sync and async test clients for…
permissive · top 15,000 on PyPI
ocp-tessellateConverts OCP (OpenCascade Python bindings) CAD…
permissive · top 15,000 on PyPI
chargehoundChargehound provides Python bindings to…
permissive · top 15,000 on PyPI
vsdxvsdx reads, modifies, and creates Microsoft…
permissive · top 15,000 on PyPI