# Summary

- [Design Overview](./overview.md)
- [Tenets](./tenets.md)
- [Design FAQ](./faq.md)

- [Smithy](./smithy/overview.md)
  - [Simple Shapes](./smithy/simple_shapes.md)
  - [Recursive Shapes](./smithy/recursive_shapes.md)
  - [Aggregate Shapes](./smithy/aggregate_shapes.md)
  - [Backwards Compatibility](smithy/backwards-compat.md)

- [Client](./client/overview.md)
  - [What is the 'orchestrator' and why does it exist?](./client/orchestrator.md)
  - [Identity and Auth](./client/identity_and_auth.md)
  - [Detailed error explanations](./client/detailed_error_explanations.md)

- [Server](./server/overview.md)
  - [Middleware](./server/middleware.md)
  - [Instrumentation](./server/instrumentation.md)
  - [Accessing Un-modelled Data](./server/from_parts.md)
  - [The Anatomy of a Service](./server/anatomy.md)
  - [Generating Common Service Code](./server/code_generation.md)

- [RFCs](./rfcs/overview.md)
  - [RFC-0001: Sharing configuration between multiple clients](./rfcs/rfc0001_shared_config.md)
  - [RFC-0002: Supporting multiple HTTP versions for SDKs that use Event Stream](./rfcs/rfc0002_http_versions.md)
  - [RFC-0003: API for Pre-signed URLs](./rfcs/rfc0003_presigning_api.md)
  - [RFC-0004: Retry Behavior](./rfcs/rfc0004_retry_behavior.md)
  - [RFC-0005: Smithy Rust service framework](./rfcs/rfc0005_service_generation.md)
  - [RFC-0006: Service-specific middleware](./rfcs/rfc0006_service_specific_middleware.md)
  - [RFC-0007: Split release process](./rfcs/rfc0007_split_release_process.md)
  - [RFC-0008: Paginators](./rfcs/rfc0008_paginators.md)
  - [RFC-0009: Example Consolidation](./rfcs/rfc0009_example_consolidation.md)
  - [RFC-0010: Waiters](./rfcs/rfc0010_waiters.md)
  - [RFC-0011: Publishing Alpha to Crates.io](./rfcs/rfc0011_crates_io_alpha_publishing.md)
  - [RFC-0012: Independent Crate Versioning](./rfcs/rfc0012_independent_crate_versioning.md)
  - [RFC-0013: Body Callback APIs](./rfcs/rfc0013_body_callback_apis.md)
  - [RFC-0014: Fine-grained timeout configuration](./rfcs/rfc0014_timeout_config.md)
  - [RFC-0015: How Cargo "features" should be used in the SDK and runtime crates](./rfcs/rfc0015_using_features_responsibly.md)
  - [RFC-0016: Supporting Flexible Checksums](./rfcs/rfc0016_flexible_checksum_support.md)
  - [RFC-0017: Customizable Client Operations](./rfcs/rfc0017_customizable_client_operations.md)
  - [RFC-0018: Logging in the Presence of Sensitive Data](./rfcs/rfc0018_logging_sensitive.md)
  - [RFC-0019: Event Streams Errors](./rfcs/rfc0019_event_streams_errors.md)
  - [RFC-0020: Service Builder Improvements](./rfcs/rfc0020_service_builder.md)
  - [RFC-0021: Dependency Versions](./rfcs/rfc0021_dependency_versions.md)
  - [RFC-0022: Error Context and Compatibility](./rfcs/rfc0022_error_context_and_compatibility.md)
  - [RFC-0023: Evolving the new service builder API](./rfcs/rfc0023_refine_builder.md)
  - [RFC-0024: RequestID](./rfcs/rfc0024_request_id.md)
  - [RFC-0025: Constraint traits](./rfcs/rfc0025_constraint_traits.md)
  - [RFC-0026: Client Crate Organization](./rfcs/rfc0026_client_crate_organization.md)
  - [RFC-0027: Endpoints 2.0](./rfcs/rfc0027_endpoints_20.md)
  - [RFC-0028: SDK Credential Cache Type Safety](./rfcs/rfc0028_sdk_credential_cache_type_safety.md)
  - [RFC-0029: Finding New Home for Credential Types](./rfcs/rfc0029_new_home_for_cred_types.md)
  - [RFC-0030: Serialization And Deserialization](./rfcs/rfc0030_serialization_and_deserialization.md)
  - [RFC-0031: Providing Fallback Credentials on Timeout](./rfcs/rfc0031_providing_fallback_credentials_on_timeout.md)
  - [RFC-0032: Better Constraint Violations](./rfcs/rfc0032_better_constraint_violations.md)
  - [RFC-0033: Improving access to request IDs in SDK clients](./rfcs/rfc0033_improve_sdk_request_id_access.md)
  - [RFC-0034: Smithy Orchestrator](./rfcs/rfc0034_smithy_orchestrator.md)
  - [RFC-0035: Collection Defaults](./rfcs/rfc0035_collection_defaults.md)
  - [RFC-0036: HTTP Dependency Exposure](./rfcs/rfc0036_http_dep_elimination.md)
  - [RFC-0037: The HTTP Wrapper](./rfcs/rfc0037_http_wrapper.md)
  - [RFC-0038: User-configurable retry classification](./rfcs/rfc0038_retry_classifier_customization.md)
  - [RFC-0039: Forward Compatible Errors](./rfcs/rfc0039_forward_compatible_errors.md)
  - [RFC-0040: Behavior Versions](./rfcs/rfc0040_behavior_versions.md)
  - [RFC-0041: Improve client error ergonomics](./rfcs/rfc0041_improve_client_error_ergonomics.md)
  - [RFC-0042: File-per-change changelog](./rfcs/rfc0042_file_per_change_changelog.md)
  - [RFC-0043: Identity Cache Partitions](./rfcs/rfc0043_identity_cache_partitions.md)
  - [RFC-0044: Environment-defined service configuration](./rfcs/rfc0044_env_defined_service_config.md)
  - [RFC-0045: Configurable Serde](./rfcs/rfc0045_configurable_serde.md)
- [Contributing](./contributing/overview.md)
  - [Writing and debugging a low-level feature that relies on HTTP](./contributing/writing_and_debugging_a_low-level_feature_that_relies_on_HTTP.md)
