# firkin v0.2.2 - Table of Contents

> S3-compatible object storage server as a Plug-based Elixir library.

## Pages

- [Firkin](readme.md)
- [Change Log](changelog.md)
- [LICENSE](license.md)

## Modules

- [Firkin](Firkin.md): A Plug-based library for building S3-compatible object storage APIs.
- [Firkin.Auth](Firkin.Auth.md): S3 Signature Version 4 authentication.
- [Firkin.Auth.SigV4](Firkin.Auth.SigV4.md): AWS Signature Version 4 implementation for server-side verification.

- [Firkin.Backend](Firkin.Backend.md): Behaviour for S3 storage backends.
- [Firkin.Backends.Memory](Firkin.Backends.Memory.md): Reference implementation of `Firkin.Backend` — stores credentials,
buckets, objects, and multipart uploads in a named ETS table.
- [Firkin.Bucket](Firkin.Bucket.md): Represents an S3 bucket in listing responses.

- [Firkin.CompleteResult](Firkin.CompleteResult.md): Result of a CompleteMultipartUpload operation.

- [Firkin.CopyResult](Firkin.CopyResult.md): Result of a CopyObject operation.

- [Firkin.Credential](Firkin.Credential.md): Represents an S3 credential pair with an opaque identity.
- [Firkin.DeleteResult](Firkin.DeleteResult.md): Result of a DeleteObjects (batch delete) operation.

- [Firkin.Error](Firkin.Error.md): S3 error representation.
- [Firkin.GetOpts](Firkin.GetOpts.md): Options for GetObject, including range and conditional request headers.

- [Firkin.ListOpts](Firkin.ListOpts.md): Options for ListObjectsV2.

- [Firkin.ListResult](Firkin.ListResult.md): Result of a ListObjectsV2 operation.

- [Firkin.MultipartList](Firkin.MultipartList.md): Result of a ListMultipartUploads operation.

- [Firkin.Object](Firkin.Object.md): Represents an S3 object returned by GetObject.

- [Firkin.ObjectMeta](Firkin.ObjectMeta.md): Object metadata returned by HeadObject and used in ListObjectsV2 entries.

- [Firkin.PartList](Firkin.PartList.md): Result of a ListParts operation.

- [Firkin.Plug](Firkin.Plug.md): Plug that serves an S3-compatible HTTP API.
- [Firkin.PutOpts](Firkin.PutOpts.md): Options for PutObject.

- [Firkin.Telemetry](Firkin.Telemetry.md): Telemetry events emitted by Firkin.
- [Firkin.XML](Firkin.XML.md): XML generation and parsing for S3 protocol messages.

## Mix Tasks

- [mix firkin.serve](Mix.Tasks.Firkin.Serve.md): Starts a Bandit HTTP server serving `Firkin.Plug`, suitable for
poking at Firkin with `aws` CLI, `mc`, or any other S3 client.

