samvera / serverless-iiif

IIIF Image API 2.1 & 3.0 server in an AWS Serverless Application
https://samvera.github.io/serverless-iiif/
Apache License 2.0
72 stars 24 forks source link
aws-apigateway aws-lambda aws-serverless iiif iiif-image image-processing libvips sharp

serverless-iiif

Build Status Maintainability Test Coverage

Upgrade Note

Previous versions of this application featured an optional CloudFront distribution that provided caching, custom domain/hostname mapping, and request/response pre/post-processing. However, the primary motivation for including this feature in the past was that it provided a complicated but effective way to skirt the hard 6 megabyte limit for Lambda function response payloads. Since then, AWS has introduced AWS Lambda response streaming, which uses chunked responses to bypass the 6 megabyte limit. As this is a much more elegant solution to the problem, there's nothing about the CloudFront template that's specific to this project any more. Ongoing development and maintenance will therefore focus on the IIIF Lambda itself rather than the large, complicated template required for a flexible, customizable CloudFront deployment.

While the CloudFront-enabled version of the application will remain available for the in the Serverless Application Repository for a time to provide an easy upgrade path for existing users, it is strongly recommended that new deployments use the provided documentation and examples of CloudFormation templates and Terraform manifests to deploy the standalone function as part of a larger application/infrastructure stack that defines its own CloudFront distribution.

Breaking Changes from Version 4.x

Description

A IIIF 2.1 and 3.0 Image API compliant server written as an AWS Serverless Application.

Components

Prerequisites

Getting Started

For information on deployment, generating source images, advanced features, and customization, see the full online documentation.

Contributing

If you're working on a PR for this project, create a feature branch off of main.

This repository follows the Samvera Community Code of Conduct and language recommendations. Please do not create a branch called master for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.

Testing

If tests are run locally they will start in "watch" mode. If a CI environment is detected they will only run once. From the project root run:

npm test

To generate a code coverage report run:

npm test --coverage

License

serverless-iiif is available under the Apache 2.0 license.

Contributors