Install & Compatibility
Where this runs
tested against v0.5.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.10
✕ build_error
✕ build_error
py 3.11
✕ build_error
✕ build_error
py 3.9
✕ build_error
✕ build_error
12MB installed
● package 12MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Enum
✓ from smithy_core import Enum
✗ from smithy_core.interfaces import SomeCoreType
SmithyError
✓ from smithy_core import SmithyError
URI
✓ from smithy_core import URI
Smithy-core is a foundational library. A direct quickstart for using `smithy-core` in isolation is not typical, as it's designed to underpin generated clients rather than for direct application development. The common pattern involves defining a Smithy model, using the Smithy CLI to generate a Python client, and then interacting with that generated client. The example above illustrates the conceptual flow, showing how a generated client would be used, implicitly relying on `smithy-core`.
# smithy-core is primarily a foundational library for code generation.
# End-users typically interact with clients generated from Smithy models,
# which then use smithy-core internally.
#
# To get started with a generated client, you would first define a Smithy model (e.g., main.smithy):
#
# # main.smithy
# $version: "2.0"
# namespace com.example
# use aws.protocols#restJson1
#
# service MyService {
# operations: [SayHello]
# }
#
# operation SayHello {
# input: SayHelloInput,
# output: SayHelloOutput
# }
#
# structure SayHelloInput {
# name: String
# }
#
# structure SayHelloOutput {
# message: String
# }
#
# Then, use the Smithy CLI to build the Python client:
#
# # Assuming 'smithy-build.json' is configured for Python client generation
# smithy build
#
# After generation, the client would be available in a build directory,
# and you would install and import from that generated client, not directly from smithy-core.
#
# Example of using a *hypothetical generated client* (not direct smithy-core usage):
# import asyncio
# from generated_client import MyServiceServiceClient
#
# async def main():
# client = MyServiceServiceClient()
# response = await client.say_hello(name='World')
# print(response.message)
#
# if __name__ == '__main__':
# asyncio.run(main())
Debug
Known issues
breakingSmithy-core is in a 'Pre-Alpha' development stage, and all of its interfaces are subject to change without prior notice. It is explicitly stated that this code generator and its clients are unstable and should not be used in production systems yet.fixUsers should exercise caution, anticipate frequent API changes, and avoid using it in production environments. Pinning to specific minor versions and reviewing changes carefully between updates is recommended for development use.
affects: 0.0.1 - 0.4.0 (all versions to date)
gotchaThe `smithy-core` package is a foundational component for Smithy's Python client generation and tooling, not typically for direct application-level consumption. Developers usually interact with code generated by Smithy, which then relies on `smithy-core` internally.fixFocus on understanding the Smithy IDL and the client generation process. When building applications, expect to import from your *generated* client code, not directly from `smithy-core`.
affects: All versions
Upgrade
Version history
0.5.0latest on PyPI · released May 5, 2026
Audit
Dependencies
pythonrequiredRequired Python version for smithy-core.