Skip to content

S3 AWS credential chain + cloud listing fast-path + build/docs groundwork - #18

Merged
hoshimura merged 7 commits into
mainfrom
pr1-s3-creds-and-cloud-fastpath
Oct 2, 2026
Merged

hoshimura merged 7 commits into
mainfrom
pr1-s3-creds-and-cloud-fastpath

Conversation

@hoshimura

Copy link
Copy Markdown
Collaborator

Summary

Foundational improvements ahead of the native-SSH and benchmark work:

  • feat(s3): resolve S3 credentials through the AWS SDK provider chain (env → profile → SSO/role/IMDS) instead of env-only, via the Rust aws-config provider.
  • perf(cloud): fast-path child construction in iterdir/glob/walk — build children from a canonical URI without re-parsing the scheme or re-reading env (_spawn/_bind_path_attrs).
  • build: strip symbols from the release binary.
  • docs: bold per-operation benchmark winners; document ssh/ftp(s) and unsupported paths in “How It Works”.

Checklist

  • Tests cover the changed behavior.
  • Documentation reflects user-visible changes.
  • No credentials, private endpoints, or confidential data are included.

@socket-security

socket-security Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​aws-config@​1.12.09910093100100

View full report

@hoshimura hoshimura self-assigned this Oct 2, 2026
@hoshimura

Copy link
Copy Markdown
Collaborator Author

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security Vulnerability Quality Maintenance License
Added cargo/​aws-config@​1.12.0 99 100 93 100 100
View full report

(@SocketSecurity ignore block-buffer@0.10.4

Replace the hand-rolled local credentials/config file parsing with the AWS SDK
default provider chain (env vars, shared profiles, IAM roles, SSO) via a new
native s3_get_credentials backed by a cached aws-config loader. Explicit keys
still take precedence; region and endpoint fall back to SDK-resolved values.
Adds an async _get_native_kwargs() hook on CloudPathMixin so backends can
resolve credentials lazily. Fixes the previous inverted env-vs-profile
precedence.
Add [profile.release] strip = "symbols" to shrink the shipped wheel.
~3.5x cheaper per-child object build (skips scheme regex + yarl re-parse +
env re-read); inherits parent credentials/config and rebinds path-derived attrs.
@hoshimura
hoshimura force-pushed the pr1-s3-creds-and-cloud-fastpath branch from dd103d6 to a0d91f8 Compare October 2, 2026 08:01

@hannabjorgvins hannabjorgvins left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one!

@hoshimura
hoshimura merged commit b46edfa into main Oct 2, 2026
8 checks passed
@hoshimura
hoshimura deleted the pr1-s3-creds-and-cloud-fastpath branch October 2, 2026 10:51
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