Page
Library
Module
Module type
Parameter
Class
Class type
Source
Awskit 0.2.0 is a breaking SDK hardening release. It moves the public API toward typed S3 values, scoped streaming bodies, structured diagnostics, and release evidence that downstream runtime authors can rely on.
Awskit.Runtime.S and Awskit_s3.RUNTIME modules, including the request-body write_subbytes hook. (4ec4e2d, 27708c0)~region and ~endpoint values where validation can fail, and return structured validation errors instead of requiring callers to prebuild every core value. Eio callers now supply their own HTTPS policy, and S3 clients use ?endpoint_config:Awskit_s3.Endpoint_config.t instead of raw endpoint, scheme, addressing-style, and endpoint-variant option groups. (#8, c53921f; 2c19cd0; 6d09f89)Awskit.Error into an opaque consumer API with constructors, context tagging, and exception bridge helpers under Awskit.Error.Producer. Public diagnostics are redacted by default, while credential provider failures expose structured source and expiration categories. (#7, ca7be3c; 129d1f4; 0cfa463; be75643)Body and Reader modules, scoped response readers, explicit request-body replayability, and bounded in-memory helpers. Use client Object.put and Object.get ~consume for streaming workflows; use put_string, put_bytes, get_string, get_bytes, find_string, and find_bytes for bounded string/bytes workflows; use transfer helpers for file workflows. (#5, 53a7642; 754c1ba; 162d533; bebf0f4)options/options_exn builders instead of passing raw strings or relying on tuple-style results. (138ab16, 9b8d90a, c3c111b, ba454b1, 3a61109, 69d795c)Object.exists now take a trailing unit argument when optional arguments are present, listing collection helpers require explicit max_pages bounds, Bucket.Get_location.result returns a concrete region, and raw query signing helpers were removed from Awskit.Signing. (2c19cd0, c3c111b, ba454b1, 3a61109)Awskit_s3.Transfer.progress records instead of raw byte counts, and transfer results now use named Put, Multipart, Get, and Ranged records with byte-count accessors. Body.of_stream returns a result, and Reader.to_string and Reader.to_bytes require max_bytes. (754c1ba, 2ee158f, 1388651, c801d6f, 27708c0)safe_uri for logs, reveal_url only for execution, and request_headers for the non-host headers an HTTP client should pass explicitly. HEAD Object presigning now uses Presigned.Head_object.options, and signed_headers includes the canonical host header. (6d09f89, bd6f919)Awskit_s3.Encryption, with typed destination, source, customer-key, and observed encryption domains. Object, multipart, and presigned callers should use encryption, destination_encryption, source_encryption, or customer_key fields instead of server_side_encryption; SSE-C multipart uploads can now send customer-key headers on create, upload-part, and complete requests, and unknown encryption strings are preserved only in read-side response metadata. (04e5603)Awskit, Awskit_s3, adapter, and Awskit_s3_sim root APIs. (fc67929, 191d03e, 733c4bc, 5bd490d, c613de7, 2aa5523)Awskit.Timeout policies, explicit retry budgets, and runtime-supplied retry jitter. (4ec4e2d)Awskit_s3.Endpoint_config builders for AWS endpoints, S3-compatible endpoints, local plaintext endpoints, and explicitly unsafe plaintext endpoints. (6d09f89)Body and Reader modules, bounded string/bytes object helpers, option-returning object lookup helpers, and reusable transfer option/planning helpers. (#5, 53a7642; #7, ca7be3c; 754c1ba; 2ee158f; 1388651)Error_if_exists downloads before transport, use PutObject for empty file uploads, stream file plans in bounded batches, avoid stale Eio upload chunks, and cancel blocked Eio multipart siblings before cleanup or abort runs. (#11, 2ee158f; 1388651; c801d6f; 27708c0; 4a723ff)ListObjectVersions marker elements are treated as absent, supported S3-compatible payload-hash forms remain accepted, future response-only checksum and enum values are preserved when modeled, unknown outbound checksum values are rejected before request construction, unmodeled storage classes can be sent through Storage_class.Other, and bodiless HTTP responses do not consume response bodies even when framing headers are present. (fa14e23, e83d337, ba454b1, a23f2ee, e8d7032, c86e4de, 15a57ec)Object.find shares Object.get request construction and context behavior, presigned helpers share endpoint-config signing paths, and ListParts collection helpers report max_pages truncation instead of silently returning partial results. (bebf0f4)with_reader, stream request bodies are materialized only when the operation executes, object and multipart errors carry S3 operation/resource context, and outbound write validation uses the shared header rules. (b5e5e4d, e8d7032)SUPPORT.md, SECURITY.md, a security threat model, maintainer workflow docs, release gates, and PR templates for release, changelog, CI, documentation, bugfix, breaking-change, and OCaml development work. (475bf37, 2aa5523, ba1f090, d694da9, 17e5fff, 429d376)main pushes and updated package documentation URLs to the Pages site. (d5abfa6)Initial public release of Awskit.
Includes core AWS signing, credentials, endpoints, request/response types, retry support, runtime abstractions, Unix credential helpers, Lwt and Eio runtime adapters, and focused S3 support for general-purpose buckets.
The S3 packages include bucket configuration primitives, object operations, multipart upload primitives, presigned URLs, and adapter-level transfer helpers for streaming file upload and download. The optional S3 simulator package provides deterministic in-memory S3 for tests.