s3s
AGENTS.md313 starsChanged 26 days agoApache-2.0View on GitHub
Agent guidance for the s3s repository. s3s is an experimental Rust project providing an ergonomic adapter for building S3-compatible services. It implements the Amazon S3 REST API as a generic hyper service: HTTP requests are converted to S3 operation inputs, user-defined services are called, and outputs or errors are converted back to HTTP responses. Adapters and integrations: Support libraries: Tools and internal: - Tools: Rust (MSRV 1.96.0), just, uv, Docker (for E2E). - Use just for all tasks — just…
We split this AGENTS.md into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 42
Use just for all tasks — just dev (fetch/fmt/codegen/lint/test), just crawl + just codegen (regenerate from Smithy models), just …
- Very specific: line 55
Look at s3s-fs as a reference implementation.
- Very specific: line 77
Prefer ` [path::Type] intra-doc links.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Agent guidance for the s3s repository.
Overview
s3s is an experimental Rust project providing an ergonomic adapter for building S3-compatible services. It implements the Amazon S3 REST API as a generic hyper service: HTTP requests are converted to S3 operation inputs, user-defined services are called, and outputs or errors are converted back to HTTP responses.
Architecture
Core:
s3s— core crate: S3 REST API as a hyper service
Adapters and integrations:
s3s-aws— aws-sdk-s3 integration and useful typess3s-fs— sample file-system implementation (testing/debugging)s3s-http3— experimental, opt-in HTTP/3 transport fors3ss3s-proxy— proxy for E2E testing
Support libraries:
s3s-model— data types generated from AWS Smithy modelss3s-policy— S3 policy handlings3s-multipart— general-purpose async streaming parser formultipart/form-data;s3suses it forPOST Objectform uploadss3s-chunked— async streaming decoder foraws-chunkedrequest bodies (placeholder crate: the implementation is under development)s3s-rfc2047— RFC 2047 MIME encoded-word encoding and decodings3s-sigv2— AWS Signature Version 2 parsing, canonicalization and signings3s-sigv4— AWS Signature Version 4 parsing, canonicalization and signing
Tools and internal:
s3s-test— testing utilitiess3s-e2e— end-to-end testing frameworks3s-codegen— build tool: generates the S3 data types from the AWS Smithy modelss3s-wasm— internal crate (publish = false): runss3sunder WebAssembly in its test suite
Development
- Tools: Rust (MSRV 1.96.0),
just,uv, Docker (for E2E). - Use
justfor all tasks —just dev(fetch/fmt/codegen/lint/test),just crawl+just codegen(regenerate from Smithy models),just semver-checks. Full list injustfile. - Code is generated from AWS Smithy models (
data/); after changing generation code, always runjust codegen(must stay idempotent). - Testing: unit tests, integration tests, and Docker-based E2E (silo,
s3s-fs, MinT, Ceph s3-tests). Human-oriented workflow:CONTRIBUTING.md. - Style: clippy strict lints (
all,pedantic,cargo= deny);unsafeforbidden; ruff for Python; Conventional Commits.
Working with the codebase
- Review existing tests for implementation patterns.
- Look at
s3s-fsas a reference implementation. - Modifying S3 operations: check if codegen is needed (
just codegen), update tests, run the full test suite (just test), consider E2E impact. - Adding features: follow the crate structure, add unit/integration tests, update docs if public APIs change, run
just dev. - Fixing bugs: add a reproducing test first, fix minimally, run the full suite.
Where to look
- Development workflow, requirements, E2E testing →
CONTRIBUTING.md - Task automation →
justfile - CI jobs and triggers →
.github/workflows/ - Smithy models and codegen →
data/,codegen/src/
Security
The S3Service and adapters have no built-in security protection. Consider HTTP body length limits, rate limiting, and back pressure; services may be exposed to the Internet.
Gotchas
codegenmerges the base and MinIO variants of each module into a singlegenerated.rs(the temporarygenerated_minio.rsis removed), selecting the differences inline with#[cfg(feature = "minio")]/#[cfg(not(feature = "minio"))]— verify both theminioand the default build.fuzz/is its own workspace (not part of the rootmembers), so the rootjust lint/just testdo not cover the fuzz targets; use the recipes infuzz/justfile.- Prefer
[`path::Type`]intra-doc links;[Type](path::Type)triggersrustdoc::redundant_explicit_links, bare[Type]triggers clippydoc_markdown.
AI contributions
AI assistance is welcome under the org-wide AI Contribution Policy.
Summary: any tools allowed; a human reviews, understands, and owns every change; prefer Assisted-by: <tool>:<model> trailers for substantive use; prefer tooling with AI co-author injection disabled; never add Signed-off-by on a human's behalf; disclose in the PR template.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository11 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- code-coverageSkill
- codegenSkill
- code-reviewSkill
- fuzz-testingSkill
- gh-stackSkill
- mutation-testingSkill
- pull-requestSkill
- testingSkill
- verificationSkill
- watch-prSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

