{"id":19341862,"url":"https://github.com/samvera/serverless-iiif","last_synced_at":"2025-04-23T03:32:08.855Z","repository":{"id":37067532,"uuid":"192655573","full_name":"samvera/serverless-iiif","owner":"samvera","description":"IIIF Image API 2.1 \u0026 3.0 server in an AWS Serverless Application","archived":false,"fork":false,"pushed_at":"2025-04-09T14:46:08.000Z","size":5413,"stargazers_count":76,"open_issues_count":5,"forks_count":24,"subscribers_count":75,"default_branch":"main","last_synced_at":"2025-04-09T15:42:03.149Z","etag":null,"topics":["aws-apigateway","aws-lambda","aws-serverless","iiif","iiif-image","image-processing","libvips","sharp"],"latest_commit_sha":null,"homepage":"https://samvera.github.io/serverless-iiif/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samvera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-06-19T04:00:26.000Z","updated_at":"2025-04-09T14:43:47.000Z","dependencies_parsed_at":"2023-02-09T14:16:22.683Z","dependency_job_id":"e0295d96-ac92-448b-b3ca-d926c8ae5159","html_url":"https://github.com/samvera/serverless-iiif","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fserverless-iiif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fserverless-iiif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fserverless-iiif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fserverless-iiif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samvera","download_url":"https://codeload.github.com/samvera/serverless-iiif/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365785,"owners_count":21418750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-apigateway","aws-lambda","aws-serverless","iiif","iiif-image","image-processing","libvips","sharp"],"created_at":"2024-11-10T03:32:49.283Z","updated_at":"2025-04-23T03:32:08.445Z","avatar_url":"https://github.com/samvera.png","language":"JavaScript","readme":"# serverless-iiif\n\n[![Build Status](https://circleci.com/gh/samvera/serverless-iiif.svg?style=svg)](https://circleci.com/gh/samvera/serverless-iiif)\n[![Maintainability](https://api.codeclimate.com/v1/badges/4ac80b539190cb5b082f/maintainability)](https://codeclimate.com/github/samvera/serverless-iiif/maintainability)\n[![Test Coverage](https://coveralls.io/repos/github/samvera/serverless-iiif/badge.svg)](https://coveralls.io/github/samvera/serverless-iiif)\n\n## Upgrade Note\n\nPrevious versions of this application featured an optional [CloudFront](https://aws.amazon.com/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](https://aws.amazon.com/blogs/compute/introducing-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.\n\nWhile 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](https://samvera.github.io/serverless-iiif/docs/quick-start/infrastructure) and [examples](./examples) of [CloudFormation](https://aws.amazon.com/cloudformation/) templates and [Terraform](https://terraform.io/) manifests to deploy the standalone function as part of a larger application/infrastructure stack that defines its own CloudFront distribution.\n\n### Breaking Changes from Version 4.x\n\n- The value of the `SharpLayer` variable must now be one of `INTERNAL`, `JP2`, or a valid Lambda layer ARN in the same region the \n  application is being deployed in. The new default is `JP2`, which behaves the same as the former default (empty string). The new\n  value, `INTERNAL`, uses the `sharp` and `libvips` dependencies compiled into the application itself.\n\n## Description\n\nA IIIF [2.1](https://iiif.io/api/image/2.1/) and [3.0](https://iiif.io/api/image/3.0/) Image API compliant server written as an [AWS Serverless Application](https://aws.amazon.com/serverless/sam/).\n\n## Components\n\n* A simple [Lambda Function](https://aws.amazon.com/lambda/) wrapper for the [iiif-processor](https://www.npmjs.com/package/iiif-processor) module.\n* A [Lambda Function URL](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) that is used to invoke the IIIF API via HTTPS.\n* A [Lambda Layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) containing all the dependencies for the Lambda Function.\n\n## Prerequisites\n\n* Some basic knowledge of AWS.\n* An Amazon Web Services account with permissions to create resources via the console and/or command line.\n* An [Amazon S3](https://aws.amazon.com/s3/) bucket to hold the source images to be served via IIIF.\n  **Note: The Lambda Function will be granted read access to this bucket.**\n\n## Getting Started\n\nFor information on deployment, generating source images, advanced features, and customization, see the [full online documentation](https://samvera.github.io/serverless-iiif/docs).\n\n## Contributing\n\nIf you're working on a PR for this project, create a feature branch off of `main`.\n\nThis repository follows the [Samvera Community Code of Conduct](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405212316/Code+of+Conduct) and [language recommendations](https://github.com/samvera/maintenance/blob/main/templates/CONTRIBUTING.md#language).  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.\n\n### Testing\n\nIf 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:\n\n```\nnpm test\n```\n\nTo generate a code coverage report run:\n\n```\nnpm test --coverage\n```\n\n## License\n\n`serverless-iiif` is available under [the Apache 2.0 license](LICENSE).\n\n## Contributors\n\n* [Michael B. Klein](https://github.com/mbklein)\n* [Justin Gondron](https://github.com/jgondron)\n* [Rob Kaufman](https://github.com/orangewolf)\n* [Edward Silverton](https://github.com/edsilv)\n* [Trey Pendragon](https://github.com/tpendragon)\n* [Theia Wolfe](https://github.com/theiawolfe)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fserverless-iiif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamvera%2Fserverless-iiif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fserverless-iiif/lists"}