# Compile time

A provider's description doesn't slow your build, however large it is,
because the compiler never reads it. Descriptions are large, by the
`Content-Length` of the raw files:

| File | Size |
|---|---|
| Stripe `openapi/spec3.json` | 8.3 MB |
| AWS S3 Smithy model | 3.0 MB |
| AWS EC2 Smithy model | 6.7 MB |

AWS publishes about 400 such models, one per service. Parsing 8 MB takes
milliseconds. The cost is resolving, checking and generating thousands of
schemas on every build and every keystroke.

So an importer reads a description once, and writes the package. On a
build, the compiler reads each package's index and `provider.jadpo`,
finds each resource the app calls by its file name, and loads only those.
It caches the check per package digest, so an unchanged package costs
nothing after the first build. An app using S3 and SES loads one driver
connection, one small package and a handful of files from it.
