All Projects → estesp → mquery

estesp / mquery

Licence: Apache-2.0 License
Multi-platform (manifest list/OCI index) registry image query utility

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to mquery

Examples Qt
Shows how to use Qt widgets only by programming code (c++17).
Stars: ✭ 38 (-9.52%)
Mutual labels:  multi-platform
feathersui-openfl
Cross-platform graphical user interface components for creative frontend projects — powered by Haxe and OpenFL
Stars: ✭ 113 (+169.05%)
Mutual labels:  multi-platform
pong
🏓 Pong for RESTful APIs (microservices pattern) using Serverless Framework ⚡
Stars: ✭ 27 (-35.71%)
Mutual labels:  lambda-functions
ocibuilder
A tool to build OCI compliant images
Stars: ✭ 63 (+50%)
Mutual labels:  oci-image
NVO-Project
NVO's Repository
Stars: ✭ 19 (-54.76%)
Mutual labels:  multi-platform
running-playwright-on-aws-lambda
Running hundreds of Playwright E2E tests in a few seconds with AWS Lambda
Stars: ✭ 225 (+435.71%)
Mutual labels:  lambda-functions
aws-lambda-decorators
A set of Python decorators to simplify AWS lambda development
Stars: ✭ 19 (-54.76%)
Mutual labels:  lambda-functions
aws-serverless-fullstack-swift-apple-carplay-example
This application demonstrates a full-stack Apple CarPlay app that uses Swift for both the UI and the backend services in AWS. The app accesses Lambda functions written in Swift and deployed from Docker images. The app accesses Amazon Location Service and a 3rd party weather api to display information in the vicinity of the user.
Stars: ✭ 84 (+100%)
Mutual labels:  lambda-functions
Cezanne
🎣 Serverless Image Generation Function
Stars: ✭ 29 (-30.95%)
Mutual labels:  lambda-functions
ezored
C++ Multiplatform Toolkit Template
Stars: ✭ 111 (+164.29%)
Mutual labels:  multi-platform
lorem-ipsum-generator-generator
🎰 Generate a lorem ipsum generator site using Mercury Web Parser
Stars: ✭ 27 (-35.71%)
Mutual labels:  lambda-functions
Clementine
A simple game engine.
Stars: ✭ 40 (-4.76%)
Mutual labels:  multi-platform
imgcrypt
OCI Image Encryption Package
Stars: ✭ 214 (+409.52%)
Mutual labels:  oci-image
SimpleWavSplitter
Split multi-channel WAV files into single channel WAV files.
Stars: ✭ 15 (-64.29%)
Mutual labels:  multi-platform
getting-started-with-serverless
Follow along with blog posts, code samples, and practical exercises to learn how to build serverless applications from your local Integrated development environment (IDE).
Stars: ✭ 46 (+9.52%)
Mutual labels:  lambda-functions
docker-healthchecks
Healthchecks Docker image
Stars: ✭ 17 (-59.52%)
Mutual labels:  multi-platform
Mengine
Mengine is an multiple platforms engine for creating and running graphical games
Stars: ✭ 21 (-50%)
Mutual labels:  multi-platform
alpha
Unified client for HTTP services
Stars: ✭ 21 (-50%)
Mutual labels:  lambda-functions
serverless-ts-template
Serverless Typescript Template
Stars: ✭ 13 (-69.05%)
Mutual labels:  lambda-functions
aws-sam-typescript-layers-example
Example project for developing AWS Lambda functions on TypeScript with all goodies: local development, tests, debugging, shared layers (3rd party and your own), and deploy.
Stars: ✭ 168 (+300%)
Mutual labels:  lambda-functions

mquery

A simple utility and serverless-based backend for querying Docker v2 & OCI v1 container images and reporting on "manifest list"/OCI "index" multi-platform image support.

About

This project uses AWS Lambda as a backend, in concert with the manifest-tool inspect API capability to easily report on the status of whether an image is a manifest list/OCI index entry in a registry, and if so, what platforms are supported by the image.

Usage

You can use the public endpoint with curl and JSON formatting tools to query images directly. See the next section for a tool which performs this for you and provides a simple text output. This tool is published as a multi-platform image on DockerHub as mplatform/mquery; for example you can look up the mplatform/mquery:latest image as follows:

$ docker run --rm mplatform/mquery mplatform/mquery:latest
Image: mplatform/mquery:latest (digest: sha256:d0989420b6f0d2b929fd9355f15c767f62d0e9a72cdf999d1eb16e6073782c71)
 * Manifest List: Yes (Image type: application/vnd.docker.distribution.manifest.list.v2+json)
 * Supported platforms:
   - linux/ppc64le
   - linux/amd64
   - linux/386
   - linux/s390x
   - linux/riscv64
   - linux/arm64/v8
   - linux/arm/v7
   - linux/arm/v6
   - windows/amd64:10.0.17763.2300
   - windows/amd64:10.0.14393.4770

Using the mquery tool

This project also includes a tool for querying the Lambda API Gateway-fronted endpoint with a simple/readable output format for showing the list of platforms supported by a specific image. You can build the tool yourself using the Makefile, or you can use a pre-packaged multi-platform image on DockerHub as shown in the section above.

This Go program requires the github.com/dghubble/sling and github.com/opencontainers/image-spec/specs-go/v1 packages. You can add these to your Go development environment with:

$ go get -u github.com/dghubble/sling
$ go get -u github.com/opencontainers/image-spec/specs-go/v1

References

More information about manifest lists and multi-platform image support is available in these blog posts:

Also see the manifest-tool project for an easy to use tool for assembling and pushing manifest lists and OCI index images.

License

This project is licensed under the Apache Public License, v2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].