skillfed

smithy-core

Core components for implementing Smithy tooling in Python.

smithy-core v0.8.0 434.5K downloads/30d#6,688 on PyPI83
Permissive license Apache License 2.0 Active released

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-core

uv

uv add smithy-core

poetry

poetry add smithy-core

Installing 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

Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersIntended Audience :: System AdministratorsLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Free Threading :: 2 - BetaProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries

Tags

smithy python sdkcode generation service clientasync service client frameworksmithy codegen pythonrest json protocol clientsmithy model to pythonsdk tooling python
code-generationasync-sdksmithy

More Libraries packages