Skip to content

Conversation

@whummer
Copy link
Member

@whummer whummer commented Jan 27, 2026

While developing a couple of LS Extensions recently (e.g., TypeDB, Wiremock, ParadeDB), we saw some patterns occuring frequently - for example, creating an extension that wraps a running Docker container and proxies any HTTP/HTTP2/gRPC network traffic to/from it through the LS Gateway (the ProxiedDockerContainerExtension can be used as a base class to abstract out the).

This PR creates a new localstack-extensions-utils package that can be used to externalize common extension utils and make them accessible to different extensions. The library will be pushed to pypi.org post-merge.

Note 🤖 : This PR was co-created with Claude Code.

whummer and others added 5 commits January 27, 2026 09:47
Move utility classes from typedb extension to a new top-level utils package
that can be shared across multiple LocalStack extensions:

- ProxiedDockerContainerExtension: base class for Docker-based extensions
- ProxyResource: HTTP/1.1 request proxy resource
- HTTP2/gRPC proxy utilities for forwarding binary traffic

The new package is published as 'localstack-extensions-utils' on PyPI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change the module structure from localstack_extensions_utils to
localstack.extensions.utils to follow LocalStack naming conventions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…nsions

Rename from localstack.extensions.utils to localstack_extensions.utils
to avoid conflicts with the main localstack package namespace.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Makefile with build, publish, format, and lint targets
- Update README: rename Installation to Usage, show pyproject.toml dependency format

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@whummer whummer mentioned this pull request Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants