Fast and secure standalone server for resizing and converting remote images

Overview

imgproxy

CircleCI branch Docker Docker Pulls Gitter

imgproxy is a fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, speed, and security.

imgproxy can be used to provide a fast and secure way to replace all the image resizing code of your web application (like calling ImageMagick or GraphicsMagick, or using libraries), while also being able to resize everything on the fly, fast and easy. imgproxy is also indispensable when handling lots of image resizing, especially when images come from a remote source.

imgproxy does one thing — resizing remote images — and does it well. It works great when you need to resize multiple images on the fly to make them match your application design without preparing a ton of cached resized images or re-doing it every time the design changes.

imgproxy is a Go application, ready to be installed and used in any Unix environment — also ready to be containerized using Docker.

See this article for a good intro and all the juicy details! imgproxy: Resize your images instantly and securely

Sponsored by Evil Martians

Simplicity

"No code is better than no code."

imgproxy only includes the must-have features for image processing, fine-tuning and security. Specifically,

  • It would be great to be able to rotate, flip and apply masks to images, but in most of the cases, it is possible — and is much easier — to do that using CSS3.
  • It may be great to have built-in HTTP caching of some kind, but it is way better to use a Content-Delivery Network or a caching proxy server for this, as you will have to do this sooner or later in the production environment.
  • It might be useful to have everything built in — such as HTTPS support — but an easy way to solve that would be just to use a proxying HTTP server such as nginx.

Speed

imgproxy uses probably the most efficient image processing library there is, called libvips. It is screaming fast and has a very low memory footprint; with it, we can handle the processing for a massive amount of images on the fly.

imgproxy also uses native Go's net/http routing for the best HTTP networking support.

You can see benchmarking results and comparison with some well-known alternatives in our benchmark report.

Security

Massive processing of remote images is a potentially dangerous thing, security-wise. There are many attack vectors, so it is a good idea to consider attack prevention measures first. Here is how imgproxy can help:

  • imgproxy checks image type and "real" dimensions when downloading, so the image will not be fully downloaded if it has an unknown format or the dimensions are too big (there is a setting for that). That is how imgproxy protects you from so called "image bombs" like those described at https://www.bamsoftware.com/hacks/deflate.html.

  • imgproxy protects image URLs with a signature, so an attacker cannot cause a denial-of-service attack by requesting multiple image resizes.

  • imgproxy supports authorization by an HTTP header. That prevents using imgproxy directly by an attacker but allows to use it through a CDN or a caching server — just by adding a header to a proxy or CDN config.

Usage

Check out our 📑 Documentation.

Author

Sergey "DarthSim" Alexandrovich

Special thanks

Many thanks to:

License

imgproxy is licensed under the MIT license.

See LICENSE for the full license text.

Security Contact

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

Issues
  • HEIC images raises an error Dimensions data wan't found in meta box

    HEIC images raises an error Dimensions data wan't found in meta box

    Hey!

    HEIC images raise an error Dimensions data wan't found in meta box. I'm using format jpg in params. The image was taken with iPhone X. Also, I found that if I choose other HEIC images also, they raise the same error.

    opened by jpalumickas 37
  • Memory leaks imgproxy v2.1.3 ?

    Memory leaks imgproxy v2.1.3 ?

    During the day at an average load of ~200 rpm there is a constant growth of rss memory. What memory consumption is normal for imgproxy ? I use imgproxy v2.1.3 on bare metal with dev-lang/go-1.10.1

    Settings:

    IMGPROXY_BIND=127.0.0.1:8080
    IMGPROXY_LOCAL_FILESYSTEM_ROOT=/home/project/static
    IMGPROXY_ENABLE_WEBP_DETECTION=true
    IMGPROXY_PROMETHEUS_BIND=127.0.0.1:9080
    IMGPROXY_CONCURRENCY=10
    IMGPROXY_MAX_CLIENTS=20
    

    Some graphs: image image image

    Sample processing: 2018/12/18 16:53:46 | 200 | [P6qFfmvtKhatZE6zNCtFu5] Processed in 49.943965ms: local:///sn037/images/product/193/762/606_original.jpg; &{Resize:fill Width:200 Height:200 Dpr:1 Gravity:{Type:soea X:0 Y:0} Enlarge:false Format:webp Quality:80 Flatten:false Background:{R:255 G:255 B:255} Blur:0 Sharpen:0 CacheBuster: Watermark:{Enabled:false Opacity:1 Replicate:false Gravity:ce OffsetX:0 OffsetY:0 Scale:0} UsedPresets:[]}

    libvips v8.7.2 build options:

    native win32:                           no
    native OS X:                            no
    open files in binary mode:              no
    enable debug:                           no
    enable deprecated library components:   yes
    enable docs with gtkdoc:                no
    gobject introspection:                  no
    enable vips7 C++ API:                   no (default)
    enable vips7 Python binding:            no (default)
    enable vips8 Python overrides:          no (default)
      (requires pygobject-3.13.0 or later)
    enable radiance support:                yes
    enable analyze support:                 yes
    enable PPM support:                     yes
    
    * optional dependencies
    use fftw3 for FFT:                      no
    Magick package:                         MagickCore
    Magick API version:                     magick6
    load with libMagick:                    yes
    save with libMagick:                    yes
    accelerate loops with orc:              no
      (requires orc-0.4.11 or later)
    ICC profile support with lcms:          no
    file import with niftiio:               no
    file import with OpenEXR:               no
    file import with OpenSlide:             no
      (requires openslide-3.3.0 or later)
    file import with matio:                 no
    PDF import with PDFium                  no
    PDF import with poppler-glib:           no
      (requires poppler-glib 0.16.0 or later)
    SVG import with librsvg-2.0:            no
      (requires librsvg-2.0 2.34.0 or later)
    zlib:                                   yes
    file import with cfitsio:               no
    file import/export with libwebp:        yes
      (requires libwebp-0.1.3 or later)
    support webp metadata:                  yes
      (requires libwebpmux-0.5 or later)
    text rendering with pangoft2:           no
    file import/export with libpng:         yes (pkg-config libpng >= 1.2.9)
      (requires libpng-1.2.9 or later)
    support 8bpp PNG quantisation:          no
      (requires libimagequant)
    file import/export with libtiff:        no
    file import/export with giflib:         yes (found by search)
    file import/export with libjpeg:        yes (pkg-config)
    image pyramid export:                   no
      (requires libgsf-1 1.14.26 or later)
    use libexif to load/save JPEG metadata: no
    
    opened by DanteG41 29
  • How to deploy on ubuntu 18.04

    How to deploy on ubuntu 18.04

    i deploy on ubuntu 18 From the source. I build libvips from the source. I install imgproxy CGO_LDFLAGS_ALLOW="-s|-w" go get -f -u github.com/imgproxy/imgproxy it error # github.com/imgproxy/imgproxy /root/go/src/github.com/imgproxy/imgproxy/errors_reporting.go:68:42: sentry.Request literal.FromHTTPRequest undefined (type sentry.Request has no field or method FromHTTPRequest)

    I install package libvips apt-get install libvips-dev It error # github.com/imgproxy/imgproxy /tmp/go-build115805004/b001/_x006.o: In function vips_trim': go/src/github.com/imgproxy/imgproxy/vips.c:421: undefined reference to vips_find_trim' collect2: error: ld returned 1 exit status github.com/imgproxy/imgproxy vips.c: In function ‘vips_trim’: vips.c:421:7: warning: implicit declaration of function ‘vips_find_trim’; did you mean ‘vips_trim’? [-Wimplicit-function-declaration] if (vips_find_trim(tmp, &left, &top, &width, &height, "background", bga, "threshold", threshold, NULL)) { ^~~~~~~~~~~~~~ vips_trim

    opened by thanh858036 22
  • PDF support causes runaway goroutines

    PDF support causes runaway goroutines

    We appreciate the new formats and features being added to imgproxy, makes me glad we chose to use imgproxy to power our previewing system. When upgrading to version 2.15.0 (pro), I noticed that support for PDF as a source was added, so I decided to give it a try in our software to see what happens. We generate WebP "seed files" from almost every file using a slower method and give that to imgproxy as a source, but during the window of time between when a file is first added and before the seed is generated, we optionally will give imgproxy the original file as a source for "snappier" previews if we can.

    When adding the option to feed PDFs directly into imgproxy, we noticed that connections to imgproxy began timing out 15-ish minutes after deployment, so we rolled back. Digging into our collected metrics, I noticed that imgproxy pods that were given PDFs as input files began creating goroutines at an alarming rate without decreasing:

    imgproxy goroutines

    (Slopes end when the pods were killed and replaced with new pods.)

    Memory usage remained relatively normal during this time, but latency for establishing a new connection went up, and our proxy layer began timing out after 15 seconds trying to establish a connection to imgproxy.

    I'm not sure what exactly went wrong here, but I supect one of these two possibilities:

    • There is a goroutine leak somewhere in the PDF implementation.
    • PDFs are simply expected to be slow, and at our volume of traffic (>10K requests/minute) imgproxy simply gets piled up with too many concurrent requests.

    Though I am suspecting the first possibility (hence this issue) because we have imgproxy configured with IMGPROXY_CONCURRENCY=50 per instance, and >400 goroutines seems really high when this configuration is set.

    Thoughts?

    opened by sagebind 18
  • Feature Request: docker image for arm64/v8

    Feature Request: docker image for arm64/v8

    Martians! First of all, thanks for this absolutely great project! You guys are the best!

    Are you planning on building an official arm64/v8 platform compatible docker image any time soon? AWS recently launched their new power ARM series and, boy, those machines are really fast.

    I'm getting the following message after a "docker run" command: WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

    Tried with many possible combinations of "--platform linux/arm64" but they all end up with the same message: WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64) and no specific platform was requested

    Thanks!!

    opened by brunom63 16
  • strip_metadata doesn't actually strip all metadata for certain output formats

    strip_metadata doesn't actually strip all metadata for certain output formats

    Certain EXIF metadata is always included in imgproxy thumbnails regardless of the presence of the strip_metadata:1 option. I would like all metadata to be stripped from the output, especially fields related to DPI (xres, yres, etc).

    Sample source image:

    relaxation-mode

    Has this metadata:

    $ exiftool relaxation-mode.jpg
    ExifTool Version Number         : 12.00
    File Name                       : relaxation-mode.jpg
    Directory                       : .
    File Size                       : 502 kB
    File Modification Date/Time     : 2021:07:09 10:10:27-05:00
    File Access Date/Time           : 2021:07:09 10:11:14-05:00
    File Inode Change Date/Time     : 2021:07:09 10:10:27-05:00
    File Permissions                : rw-r--r--
    File Type                       : JPEG
    File Type Extension             : jpg
    MIME Type                       : image/jpeg
    Image Width                     : 5120
    Image Height                    : 3686
    Encoding Process                : Baseline DCT, Huffman coding
    Bits Per Sample                 : 8
    Color Components                : 3
    Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
    Image Size                      : 5120x3686
    Megapixels                      : 18.9
    

    When asking for a JPEG thumbnail, stripping metadata, the image produced has this metadata:

    $ curl -s 'http://localhost:8181/insecure/w:640/sm:1/scp:1/plain/local:///relaxation-mode.jpg' | exiftool -
    ExifTool Version Number         : 12.00
    File Type                       : JPEG
    File Type Extension             : jpg
    MIME Type                       : image/jpeg
    Exif Byte Order                 : Little-endian (Intel, II)
    Orientation                     : Horizontal (normal)
    X Resolution                    : 72
    Y Resolution                    : 72
    Resolution Unit                 : inches
    Y Cb Cr Positioning             : Centered
    Exif Version                    : 0210
    Components Configuration        : Y, Cb, Cr, -
    Flashpix Version                : 0100
    Color Space                     : Uncalibrated
    Exif Image Width                : 640
    Exif Image Height               : 460
    Image Width                     : 640
    Image Height                    : 460
    Encoding Process                : Baseline DCT, Huffman coding
    Bits Per Sample                 : 8
    Color Components                : 3
    Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
    Image Size                      : 640x460
    Megapixels                      : 0.294
    

    Similarly, for WebP:

    $ curl -s 'http://localhost:8181/insecure/w:640/sm:1/scp:1/plain/local:///[email protected]' | exiftool -
    ExifTool Version Number         : 12.00
    File Type                       : WEBP
    File Type Extension             : webp
    MIME Type                       : image/webp
    VP8 Version                     : 0 (bicubic reconstruction, normal loop)
    Image Width                     : 640
    Horizontal Scale                : 0
    Image Height                    : 460
    Vertical Scale                  : 0
    Exif Byte Order                 : Little-endian (Intel, II)
    Orientation                     : Horizontal (normal)
    X Resolution                    : 72
    Y Resolution                    : 72
    Resolution Unit                 : inches
    Y Cb Cr Positioning             : Centered
    Exif Version                    : 0210
    Components Configuration        : Y, Cb, Cr, -
    Flashpix Version                : 0100
    Color Space                     : Uncalibrated
    Exif Image Width                : 640
    Exif Image Height               : 460
    Image Size                      : 640x460
    Megapixels                      : 0.294
    

    For these two formats at least, it seems that you must instruct libvips to not write a standard EXIF block with default values when writing the output. For example, vips_jpegsave() has a strip option that should be set to true:

    If strip is set, no EXIF data, IPTC data, ICC profile or XMP metadata is written into the output file.

    Similarly, vips_webpsave() also has a strip option:

    The writer will attach ICC, EXIF and XMP metadata, unless strip is set to TRUE.

    I think the right behavior here would be to pass along the strip_metadata preference into the save routine so that if true, certain format writers can set their various strip options if requested.

    It seems that "pixels per unit" is also included for PNG outputs:

    curl -s 'http://localhost:8181/insecure/w:640/sm:1/scp:1/plain/local:///[email protected]' | exiftool -
    ExifTool Version Number         : 12.00
    File Type                       : PNG
    File Type Extension             : png
    MIME Type                       : image/png
    Image Width                     : 640
    Image Height                    : 460
    Bit Depth                       : 8
    Color Type                      : RGB
    Compression                     : Deflate/Inflate
    Filter                          : Adaptive
    Interlace                       : Noninterlaced
    Pixels Per Unit X               : 2835
    Pixels Per Unit Y               : 2835
    Pixel Units                     : meters
    Image Size                      : 640x460
    Megapixels                      : 0.294
    

    but seeing as vips_pngsave() has no equivalent strip option, I don't know if anything can be done about that.

    opened by sagebind 16
  • Docker container restarts randomly

    Docker container restarts randomly

    We observe random restarts when running the Docker container:

    2018/05/28 10:09:01 [ZCn...Bn.jpg
    2018/05/28 10:09:02 Starting server at :8080
    2018/05/28 10:09:03 [w3m...Bn.jpg
    2018/05/28 10:09:03 [Had...
    

    This happens at least a couple of times per hour.

    opened by dabide 14
  • Is this Possible;

    Is this Possible; "Remote Imgproxy and Remote Image files" - If yes, How?

    Inspiration

    After using the Imgproxy Heroku button, I used this link to confirm whether my images in s3 are resizing properly or not. And that worked excellently as mentioned in this Evilmartians blog post in a couple of minutes. So, I started thinking to eliminate services like Cloudinary addons and ImageMagick in my production environment and replace it with Imgproxy.

    My present Production configuration

    Let me introduce how my production environment work so that it might give you some idea to advise me to move forward. I use two Digital Ocean droplets(Let's call them dB and App), One for databases(Redis and Postgress), and the other is to run my Ruby on Rails workers(Web and Sidekiq). The databases are managed through Caprover and Rails app using Dokku, while the images are uploaded in s3.

    What I was planning to do

    As Imgproxy has containerisation and Heroku support, I can install Imgproxy in any of these droplets(dB or App). As my Sidekiq worker is already consuming an awful amount of RAM, even after configuring Jemalloc, I decided not to install this in App droplet and install Imgproxy in dB droplet(Which is a remote server to my App droplet).

    A small test in Heroku

    Before starting to implement this in my production, I thought to run some tests in Heroku. I used the Heroku button to create my Imgproxy instance. Configured the ENV variables (IMGPROXY_SALT and IMGPROXY_KEY). Tested my setup using this in browser and with this command curl -I https://imgproxyleedev.herokuapp.com/unsafe/aHR0cDovL2xvY2Fs/aG9zdDozMDAwL2Fz/c2V0cy8xLnBuZw in my Production(App Droplet). Till now everything went quite well.

    Problem I was facing

    I have two Heroku instances, within which one is hosting Imgproxy, and the other is my development instance. As I want to configure a remote Imgproxy with Remote images, I read almost half of the documentation to understand how Imgproxy works well in my case. Then I came across these environment variables to make this possible. I configured all these variables in both of my Heroku Instances(Imgproxy and Development), as I'm not sure, "how to pinpointedly distribute those ENV variables among these two Heroku instances"(I tried but failed).

    Here are my environment variables; $ indicates as placeholders and if no $, I'm using the exact same value.

    | ENV Variable | Value | |---|---| |IMGPROXY_USE_S3 | true | | IMGPROXY_S3_REGION |us-east-1 | | IMGPROXY_S3_ENDPOINT |leewardslope-us.s3.amazonaws.com | | AWS_ACCESS_KEY_ID | $(my ID) | | AWS_SECRET_ACCESS_KEY | $(my KEY) | | IMGPROXY_KEY | $(generated string) | | IMGPROXY_SALT | $(generated string) | |IMGPROXY_ENDPOINT | imgproxyleedev.herokuapp.com |

    Now, I restarted and redeployed both my Heroku instances(making sure it is not the issue), but I'm facing few problems.

    • My development app now have different image URLs but can't load images. I even tried creating new articles and reupload profile pictures; It's not working too!

    I need help

    If anyone out there who can resolve this issue or guide me through configuration, please let me know! I'm eagerly waiting to use this tool—thank you in advance.

    opened by akhil-naidu 13
  • How to track 500 errors?

    How to track 500 errors?

    I'm having an issue with imgproxy (?) which is not very clear. My CND reports there are ~2K 500 error responses daily observed. An indeed there are some errors in the logs regarding invalid original image urls. However its just few of them, like 4-5 a day and I'm not sure if its reported as 500 or 404 error.

    Any clues how do I investigate the issue?

    My setup is imgproxy -> traefik -> cnd (bunny.net).

    I've checked the logs at traefik and imgproxy and havent found anything to that rate. Unfortunately there are no specific failure URLs (all reported 500 error imgproxy-urls are working fine every time I check it but it may be the result of bunny retries.

    opened by pySilver 12
  • Support AVIF

    Support AVIF

    Hi, do you have plans to implement AVIF format? It's new-generation image format https://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4 which will be supported in new version Chrome 85 https://caniuse.com/#feat=avif . I think is a great feature and more imgproxy users will appear on the wave of hype

    feature request 
    opened by Tom910 12
  • Resizing animated gif results in broken result

    Resizing animated gif results in broken result

    In:

    waterfall-p28irqpITY-1

    out: (via /rs:fit:147:104/)

    waterfall-p28irqpITY

    Same result when outputting it as .webp

    Seems to work fine for the first frame (thus the flickering), but creates a transparent box for the remaining frames. Not sure whether it's an issue with imgproxy or libvips.

    version: brand latest docker image (installed today)

    opened by danielberndt 12
  • Bump google.golang.org/api from 0.83.0 to 0.86.0

    Bump google.golang.org/api from 0.83.0 to 0.86.0

    Bumps google.golang.org/api from 0.83.0 to 0.86.0.

    Release notes

    Sourced from google.golang.org/api's releases.

    v0.86.0

    0.86.0 (2022-06-28)

    Features

    v0.85.0

    0.85.0 (2022-06-21)

    Features

    v0.84.0

    0.84.0 (2022-06-14)

    Features

    Changelog

    Sourced from google.golang.org/api's changelog.

    0.86.0 (2022-06-28)

    Features

    0.85.0 (2022-06-21)

    Features

    0.84.0 (2022-06-14)

    Features

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/stretchr/testify from 1.7.2 to 1.8.0

    Bump github.com/stretchr/testify from 1.7.2 to 1.8.0

    Bumps github.com/stretchr/testify from 1.7.2 to 1.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/aws/aws-sdk-go from 1.44.32 to 1.44.47

    Bump github.com/aws/aws-sdk-go from 1.44.32 to 1.44.47

    Bumps github.com/aws/aws-sdk-go from 1.44.32 to 1.44.47.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.44.47 (2022-07-01)

    Service Client Updates

    • service/dms: Updates service API and documentation
      • Added new features for AWS DMS version 3.4.7 that includes new endpoint settings for S3, OpenSearch, Postgres, SQLServer and Oracle.
    • service/rds: Updates service API, documentation, waiters, paginators, and examples
      • Adds support for additional retention periods to Performance Insights.

    Release v1.44.46 (2022-06-30)

    Service Client Updates

    • service/athena: Updates service API and documentation
      • This feature introduces the API support for Athena's parameterized query and BatchGetPreparedStatement API.
    • service/customer-profiles: Updates service API and documentation
    • service/elasticmapreduce: Updates service API and documentation
      • This release adds support for the ExecutionRoleArn parameter in the AddJobFlowSteps and DescribeStep APIs. Customers can use ExecutionRoleArn to specify the IAM role used for each job they submit using the AddJobFlowSteps API.
    • service/glue: Updates service API and documentation
      • This release adds tag as an input of CreateDatabase
    • service/kendra: Updates service API and documentation
      • Amazon Kendra now provides a data source connector for alfresco
    • service/mwaa: Updates service API and documentation
    • service/pricing: Updates service API and documentation
    • service/wellarchitected: Updates service API and documentation
    • service/workmail: Updates service API, documentation, and paginators
      • This release adds support for managing user availability configurations in Amazon WorkMail.

    Release v1.44.45 (2022-06-29)

    Service Client Updates

    • service/appstream: Updates service API and documentation
      • Includes support for StreamingExperienceSettings in CreateStack and UpdateStack APIs
    • service/elasticloadbalancingv2: Updates service documentation
    • service/elasticmapreduce: Updates service API and documentation
      • This release introduces additional optional parameter "Throughput" to VolumeSpecification to enable user to configure throughput for gp3 ebs volumes.
    • service/medialive: Updates service API and documentation
      • This release adds support for automatic renewal of MediaLive reservations at the end of each reservation term. Automatic renewal is optional. This release also adds support for labelling accessibility-focused audio and caption tracks in HLS outputs.
    • service/redshift-serverless: Adds new service
    • service/sagemaker: Updates service API and documentation
      • This release adds: UpdateFeatureGroup, UpdateFeatureMetadata, DescribeFeatureMetadata APIs; FeatureMetadata type in Search API; LastModifiedTime, LastUpdateStatus, OnlineStoreTotalSizeBytes in DescribeFeatureGroup API.
    • service/translate: Updates service API, documentation, and paginators

    Release v1.44.44 (2022-06-28)

    Service Client Updates

    • service/datasync: Updates service API and documentation
    • service/ec2: Updates service API and documentation

    ... (truncated)

    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.44.47 (2022-07-01)

    Service Client Updates

    • service/dms: Updates service API and documentation
      • Added new features for AWS DMS version 3.4.7 that includes new endpoint settings for S3, OpenSearch, Postgres, SQLServer and Oracle.
    • service/rds: Updates service API, documentation, waiters, paginators, and examples
      • Adds support for additional retention periods to Performance Insights.

    Release v1.44.46 (2022-06-30)

    Service Client Updates

    • service/athena: Updates service API and documentation
      • This feature introduces the API support for Athena's parameterized query and BatchGetPreparedStatement API.
    • service/customer-profiles: Updates service API and documentation
    • service/elasticmapreduce: Updates service API and documentation
      • This release adds support for the ExecutionRoleArn parameter in the AddJobFlowSteps and DescribeStep APIs. Customers can use ExecutionRoleArn to specify the IAM role used for each job they submit using the AddJobFlowSteps API.
    • service/glue: Updates service API and documentation
      • This release adds tag as an input of CreateDatabase
    • service/kendra: Updates service API and documentation
      • Amazon Kendra now provides a data source connector for alfresco
    • service/mwaa: Updates service API and documentation
    • service/pricing: Updates service API and documentation
    • service/wellarchitected: Updates service API and documentation
    • service/workmail: Updates service API, documentation, and paginators
      • This release adds support for managing user availability configurations in Amazon WorkMail.

    Release v1.44.45 (2022-06-29)

    Service Client Updates

    • service/appstream: Updates service API and documentation
      • Includes support for StreamingExperienceSettings in CreateStack and UpdateStack APIs
    • service/elasticloadbalancingv2: Updates service documentation
    • service/elasticmapreduce: Updates service API and documentation
      • This release introduces additional optional parameter "Throughput" to VolumeSpecification to enable user to configure throughput for gp3 ebs volumes.
    • service/medialive: Updates service API and documentation
      • This release adds support for automatic renewal of MediaLive reservations at the end of each reservation term. Automatic renewal is optional. This release also adds support for labelling accessibility-focused audio and caption tracks in HLS outputs.
    • service/redshift-serverless: Adds new service
    • service/sagemaker: Updates service API and documentation
      • This release adds: UpdateFeatureGroup, UpdateFeatureMetadata, DescribeFeatureMetadata APIs; FeatureMetadata type in Search API; LastModifiedTime, LastUpdateStatus, OnlineStoreTotalSizeBytes in DescribeFeatureGroup API.
    • service/translate: Updates service API, documentation, and paginators

    Release v1.44.44 (2022-06-28)

    Service Client Updates

    • service/datasync: Updates service API and documentation
    • service/ec2: Updates service API and documentation

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump gopkg.in/DataDog/dd-trace-go.v1 from 1.38.1 to 1.39.0

    Bump gopkg.in/DataDog/dd-trace-go.v1 from 1.38.1 to 1.39.0

    Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.38.1 to 1.39.0.

    Release notes

    Sourced from gopkg.in/DataDog/dd-trace-go.v1's releases.

    v1.39.0

    Summary

    With this release, the Go tracer now starts reporting a set of security monitoring tags for each server request without the need to enable ASM. Currently, the collected tags are http.client_ip, http.useragent, http.status_code and http.method, and more will come with future releases. More information about this can be found in the Datadog documentation. Other additions include a new integration for the logrus logging package, and overriding the sampling decision of a trace in downstream services is now possible. Additionally, a new tag aws.request_id was added to spans for the aws-sdk-go integration. On top of this the tracer has a new option, WithUniversalVersion, which removes the limitation of having the service name match the name defined when starting the tracer for version tracking. Some more fixes and improvements were made which you can find in the changelog below.

    Changes

    Repo

    APM

    ASM

    Profiler

    Full Changelog: https://github.com/DataDog/dd-trace-go/compare/v1.38.1...v1.39.0

    Commits
    • 9657559 internal/version: v1.39.0
    • 61125ac go.mod: update github.com/gin-gonic/gin to v1.7.7 (#1341) (#1361)
    • d02d46a internal/version: v1.39.0-rc.1
    • b297ad7 contrib/internal/httptrace: write _dd.multiple-ip-headers span tag (#1346)
    • b0109f7 internal/telemetry: add missing fields to match spec (#1354)
    • 5b0f439 README: reminder to update public docs (#1353)
    • db9d198 profiler: remove API key reference from package doc (#1351)
    • 0870477 ddtrace/tracer: address race detector warning from TestDefaultHTTPClient (#1347)
    • f1b2983 contrib: store http request path in span tags for ASM backend WAF (#1342)
    • e2a9297 contrib/database/sql: SQL comment tag injection experimental feature (#1226)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/newrelic/go-agent/v3 from 3.16.1 to 3.17.0

    Bump github.com/newrelic/go-agent/v3 from 3.16.1 to 3.17.0

    Bumps github.com/newrelic/go-agent/v3 from 3.16.1 to 3.17.0.

    Release notes

    Sourced from github.com/newrelic/go-agent/v3's releases.

    Release v3.17.0

    3.17.0

    Added

    • Logs in context now supported for zerolog.
    • This is a quick way to view logs no matter where you are in the platform. * Adds support for logging metrics which shows the rate of log messages by severity in the Logs chart in the APM Summary view. This is enabled by default in this release. * Adds support for forwarding application logs to New Relic. This automatically sends application logs that have been enriched to power APM logs in context. This is disabled by default in this release. This will be on by default in a future release. * To learn more about APM logs in context see the documentation here. * Includes the RecordLog function for recording log data from a single log entry * An integrated plugin for zerolog to automatically ingest log data with the Go Agent. * Resolves issue 178, issue 488, issue 489, issue 490, and issue 491 .
    • Added integration for MS SQL Server (PR 425; thanks @​ishahid91!) * This introduces the nrmssql integration v1.0.0.
    • Added config function ConfigCustomInsightsEventsMaxSamplesStored for limiting the number of samples stored in a custom insights event. Fixes issue 476

    Fixed

    • Improved speed of building distributed trace header JSON payload. Fixes issue 505.
    • Renamed the gRPC attribute names from GrpcStatusLevel, GrpcStatusMessage, and GrpcStatusCode to grpcStatusLevel, grpcStatusMessage, and grpcStatusCode respectively, to conform to existing naming conventions for New Relic agents. Fixes issue 492.
    • Updated go.mod for the nrgin integration to mitigate security issue in 3rd party dependency.
    • Updated go.mod for the nrawssdk-v1 integration to properly reflect its dependency on version 3.16.0 of the Go Agent.
    • Updated go.mod for the nrlambda integration to require aws-lambda-go version 1.20.0. (PR 356; thanks MattWhelan!)

    Support Statement

    New Relic recommends that you upgrade the agent regularly to ensure that you’re getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.

    • Note that the oldest supported version of the Go Agent is 3.6.0.
    Changelog

    Sourced from github.com/newrelic/go-agent/v3's changelog.

    3.17.0

    Added

    • Logs in context now supported for zerolog.
    • This is a quick way to view logs no matter where you are in the platform.
      • Adds support for logging metrics which shows the rate of log messages by severity in the Logs chart in the APM Summary view. This is enabled by default in this release.
      • Adds support for forwarding application logs to New Relic. This automatically sends application logs that have been enriched to power APM logs in context. This is disabled by default in this release. This will be on by default in a future release.
      • To learn more about APM logs in context see the documentation here.
      • Includes the RecordLog function for recording log data from a single log entry
      • An integrated plugin for zerolog to automatically ingest log data with the Go Agent.
      • Resolves issue 178, issue 488, issue 489, issue 490, and issue 491 .
    • Added integration for MS SQL Server (PR 425; thanks @​ishahid91!)
      • This introduces the nrmssql integration v1.0.0.
    • Added config function ConfigCustomInsightsEventsMaxSamplesStored for limiting the number of samples stored in a custom insights event. Fixes issue 476

    Fixed

    • Improved speed of building distributed trace header JSON payload. Fixes issue 505.
    • Renamed the gRPC attribute names from GrpcStatusLevel, GrpcStatusMessage, and GrpcStatusCode to grpcStatusLevel, grpcStatusMessage, and grpcStatusCode respectively, to conform to existing naming conventions for New Relic agents. Fixes issue 492.
    • Updated go.mod for the nrgin integration to mitigate security issue in 3rd party dependency.
    • Updated go.mod for the nrawssdk-v1 integration to properly reflect its dependency on version 3.16.0 of the Go Agent.
    • Updated go.mod for the nrlambda integration to require aws-lambda-go version 1.20.0. (PR 356; thanks MattWhelan!)

    Support Statement

    New Relic recommends that you upgrade the agent regularly to ensure that you’re getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.

    • Note that the oldest supported version of the Go Agent is 3.6.0.

    ChangeLog

    Commits
    • d71efc4 Merge pull request #531 from newrelic/develop
    • 56d78e8 Merge pull request #530 from nr-swilloughby/release_3_17_0_dev
    • 6206cc3 updated changelog
    • 37765c6 updates to release 3.17.0 of the agent
    • b136918 Merge pull request #529 from iamemilio/cleanup_3.17.0
    • 0fd76e6 clean up some style issues and exported functions that should be private
    • ea1dcf9 Custom Events Limiter (#524)
    • 69c4599 Merge pull request #527 from newrelic/cherry-picked-pr-525
    • e084769 Merge pull request #528 from newrelic/revert-478-fix/js_wasm
    • 0083969 Revert "Added noop operations for js/wasm build target"
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/fsouza/fake-gcs-server from 1.38.2 to 1.38.3

    Bump github.com/fsouza/fake-gcs-server from 1.38.2 to 1.38.3

    Bumps github.com/fsouza/fake-gcs-server from 1.38.2 to 1.38.3.

    Release notes

    Sourced from github.com/fsouza/fake-gcs-server's releases.

    v1.38.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/fsouza/fake-gcs-server/compare/v1.38.2...v1.38.3

    Commits
    • fead2bb Fix upload response structure (#843)
    • 569a2bf build(deps): bump cloud.google.com/go/pubsub from 1.22.2 to 1.23.0 (#839)
    • 9264119 build(deps): bump @​google-cloud/storage in /examples/node (#836)
    • 2e8d15b build(deps): bump cloud.google.com/go/storage in /examples/go (#840)
    • edc0a4c build(deps): bump cloud.google.com/go/storage from 1.22.1 to 1.23.0 (#841)
    • 57a00d2 build(deps): bump github.com/stretchr/testify from 1.7.4 to 1.7.5 (#842)
    • 750b983 build(deps): bump github.com/stretchr/testify from 1.7.2 to 1.7.4 (#835)
    • 665c3a6 build(deps): bump google.golang.org/api from 0.83.0 to 0.84.0 (#831)
    • a4aa528 build(deps): bump google.golang.org/api in /examples/go (#830)
    • 0f89d75 build(deps): bump google-cloud-storage in /examples/python (#825)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(v3.6.0)
  • v3.6.0(Jun 13, 2022)

    Add

    • Add IMGPROXY_RETURN_ATTACHMENT config and return_attachment processing option.
    • Add SVG sanitization and IMGPROXY_SANITIZE_SVG config.

    Change

    • Better animation detection.

    Fix

    • Respond with 404 when file wasn't found in the local storage.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1(May 20, 2022)

    Change

    • Fallback from AVIF to JPEG/PNG if one of the result dimensions is smaller than 16px.

    Fix

    • (pro) Fix some PDF pages background.
    • (docker) Fix loading some HEIF images.
    Source code(tar.gz)
    Source code(zip)
  • v3.5.0(Apr 25, 2022)

    Add

    • Add support of RLE-encoded BMP.
    • Add IMGPROXY_ENFORCE_THUMBNAIL config and enforce_thumbnail processing option.
    • Add X-Result-Width and X-Result-Height to debug headers.
    • Add IMGPROXY_KEEP_COPYRIGHT config and keep_copyright processing option.

    Change

    • Use thumbnail embedded to HEIC/AVIF if its size is larger than or equal to the requested.
    Source code(tar.gz)
    Source code(zip)
  • v3.4.0(Apr 7, 2022)

    Add

    • Add IMGPROXY_FALLBACK_IMAGE_TTL config.
    • (pro) Add watermark_size processing option.
    • Add OpenStack Object Storage ("Swift") support.
    • Add IMGPROXY_GCS_ENDPOINT config.

    Change

    • (pro) Don't check Content-Length header of videos.

    Fix

    • (pro) Fix custom watermarks on animated images.
    Source code(tar.gz)
    Source code(zip)
  • v3.3.3(Mar 21, 2022)

  • v3.3.2(Mar 17, 2022)

  • v3.3.1(Mar 14, 2022)

  • v3.3.0(Feb 21, 2022)

    Added

    • Add the IMGPROXY_MAX_REDIRECTS config.
    • (pro) Add the IMGPROXY_SERVER_NAME config.
    • (pro) Add the IMGPROXY_HEALTH_CHECK_MESSAGE config.
    • Add the IMGPROXY_HEALTH_CHECK_PATH config.
    Source code(tar.gz)
    Source code(zip)
  • v3.2.2(Feb 8, 2022)

  • v3.2.1(Jan 19, 2022)

  • v3.2.0(Jan 18, 2022)

    Added

    • (pro) Add video_meta to the /info response.
    • Add zoom processing option.
    • Add 1/2/4-bit BMP support.

    Change

    • Optimized crop.

    Fix

    • Fix Datadog support.
    • Fix force resizing + rotation.
    • (pro) Fix obj gravity.
    Source code(tar.gz)
    Source code(zip)
  • v3.1.3(Dec 17, 2021)

  • v3.1.2(Dec 15, 2021)

  • v3.1.1(Dec 10, 2021)

  • v3.1.0(Dec 8, 2021)

    Added

    • Add IMGPROXY_ETAG_BUSTER config.
    • (pro) watermark_text processing option.

    Change

    • Improved ICC profiles handling.
    • Proper error message when the deprecated basic URL format is used.
    • Watermark offsets can be applied to replicated watermarks.

    Fix

    • (pro) Fix parsing metadata of extended sequential JPEGs.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Nov 23, 2021)

    🎉 imgproxy 3.0 is here! 🎉

    Added

    Change

    • ETag generator & checker uses source image ETag when possible.
    • 304 Not Modified responses includes Cache-Control, Expires, and Vary headers.
    • dpr processing option doesn't enlarge image unless enlarge is true.
    • imgproxy responds with 500 HTTP code when the source image downloading error seems temporary (timeout, server error, etc).
    • When IMGPROXY_FALLBACK_IMAGE_HTTP_CODE is zero, imgproxy responds with the usual HTTP code.
    • BMP support doesn't require ImageMagick.
    • Save GIFs without ImageMagick (vips 8.12+ required).

    Fix

    • Fix Client Hints behavior. Width is physical size, so we should divide it by DPR value.
    • Fix scale-on-load in some rare cases.
    • Fix the default Sentry release name.
    • Fix the health command when the path prefix is set.
    • Escape double quotes in content disposition.

    Removed

    • Removed basic URL format, use advanced one instead.
    • Removed IMGPROXY_MAX_SRC_DIMENSION config, use IMGPROXY_MAX_SRC_RESOLUTION instead.
    • Removed IMGPROXY_GZIP_COMPRESSION config.
    • Removed IMGPROXY_MAX_GIF_FRAMES config, use IMGPROXY_MAX_ANIMATION_FRAMES instead.
    • Removed crop resizing type, use crop processing option instead.
    • Dropped old libvips (<8.10) support.
    • (pro) Removed advanced GIF optimizations. All optimizations are applied by default ib both OSS and Pro versions.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0.beta2(Nov 15, 2021)

    Added

    • Add X-Origin-Width and X-Origin-Height to debug headers.
    • Add IMGPROXY_COOKIE_PASSTHROUGH and IMGPROXY_COOKIE_BASE_URL configs.

    Change

    • dpr processing option doesn't enlarge image unless enlarge is true.
    • 304 Not Modified responses includes Cache-Control, Expires, and Vary headers.
    • imgproxy responds with 500 HTTP code when the source image downloading error seems temporary (timeout, server error, etc).
    • When IMGPROXY_FALLBACK_IMAGE_HTTP_CODE is zero, imgproxy responds with the usual HTTP code.
    • BMP support doesn't require ImageMagick.

    Fix

    • Fix Client Hints behavior. Width is physical size, so we should divide it by DPR value.
    • Fix scale-on-load in some rare cases.
    • Fix requests_total counter in Prometheus.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0.beta1(Sep 30, 2021)

    Added

    Change

    • ETag generator & checker uses source image ETag when possible.

    Removed

    • Removed basic URL format, use advanced one instead.
    • Removed IMGPROXY_MAX_SRC_DIMENSION config, use IMGPROXY_MAX_SRC_RESOLUTION instead.
    • Removed IMGPROXY_GZIP_COMPRESSION config.
    • Removed IMGPROXY_MAX_GIF_FRAMES config, use IMGPROXY_MAX_ANIMATION_FRAMES instead.
    • Removed crop resizing type, use crop processing option instead.
    • Dropped old libvips (<8.8) support.
    Source code(tar.gz)
    Source code(zip)
  • v2.17.0(Sep 7, 2021)

  • v2.16.7(Jul 20, 2021)

  • v2.16.6(Jul 8, 2021)

  • v2.16.5(Jun 28, 2021)

  • v2.16.4(Jun 16, 2021)

    Change

    • Use magenta (ff00ff) as a transparency key in trim.

    Fix

    • Fix crashes while processing some SVGs (dockerized version).
    • (pro) Fix parsing HEIF/AVIF meta.
    Source code(tar.gz)
    Source code(zip)
  • v2.16.3(Apr 5, 2021)

  • v2.16.2(Mar 4, 2021)

  • v2.16.1(Mar 2, 2021)

    Fix

    • Fix delays and loop numbers of animated images.
    • Fix scale-on-load of huge SVGs.
    • (pro) Fix loading of PDFs with transparent background.
    Source code(tar.gz)
    Source code(zip)
  • v2.16.0(Feb 8, 2021)

    Added

    • AVIF support.
    • Azure Blob Storage support.
    • IMGPROXY_STRIP_COLOR_PROFILE config and strip_color_profile processing option.
    • IMGPROXY_FORMAT_QUALITY config.
    • IMGPROXY_AUTO_ROTATE config and auto_rotate processing option.
    • rotate processing option.
    • width and height arguments of the crop processing option can be less than 1 that is treated by imgproxy as a relative value (a.k.a. crop by percentage).
    • (pro) Remove Adobe Illustrator garbage from SVGs.
    • (pro) Add IPTC tags to the /info response.

    Changed

    • Disable scale-on-load for animated images since it causes many problems. Currently, only animated WebP is affected.
    • Improved ICC profiles handling.
    • (pro) Improved and optimized video thumbnails generation.

    Fix

    • Fix dpr option.
    • Fix non-strict SVG detection.
    • Fix non-UTF8 SVG detection.
    • Fix checking of connections in queue.
    • (pro) Fix video thumbnail orientation.
    • (pro) Fix EXIF fields titles in the /info response.
    Source code(tar.gz)
    Source code(zip)
  • v2.15.0(Nov 9, 2020)

    Added

    • Ability to skip processing of some formats. See Skip processing.
    • (pro) PDF support.
    • (pro) video_thumbnail_second processing option.
    • (pro) page processing option.
    • (pro) background_alpha processing option.
    • (pro) IMGPROXY_VIDEO_THUMBNAIL_PROBE_SIZE and IMGPROXY_VIDEO_THUMBNAIL_MAX_ANALYZE_DURATION configs.

    Changed

    • Speed up generation of video thumbnails with large timestamps.

    Fix

    • Fix padding and extend behaior when converting from a fromat without alpha support to one with alpha support.
    • Fix WebP dimension limit handling.
    • (pro) Fix thumbnails generation of some videos.
    Source code(tar.gz)
    Source code(zip)
  • v2.14.1(Jul 22, 2020)

  • v2.14.0(Jul 17, 2020)

    Added

    Changed

    • Better for libvips memory metrics for Prometheus.
    • Docker image includes the latest versions of dependencies.
    • Optimize processing of animated images.

    Fix

    • Fix error when requested WebP dimension exceeds the WebP dimension limit.
    • Fix path parsing in some rare cases.
    • Fix HEIC/HEIF header parsing bug.

    Deprecated

    • (pro) IMGPROXY_APPLY_UNSHARPEN_MASKING config is deprecated, use IMGPROXY_UNSHARPENING_MODE instead.
    Source code(tar.gz)
    Source code(zip)
Owner
imgproxy
Fast and secure standalone server for resizing and converting remote images
imgproxy
A lightning fast image processing and resizing library for Go

govips A lightning fast image processing and resizing library for Go This package wraps the core functionality of libvips image processing library by

David Byttow 697 Jun 28, 2022
An image resizing server written in Go

picfit picfit is a reusable Go server to manipulate images (resize, thumbnail, etc.). It will act as a proxy on your storage engine and will be served

Florent Messa 1.7k Jun 24, 2022
Image resizing in pure Go and SIMD

rez Package rez provides image resizing in pure Go and SIMD. Download: go get github.com/bamiaux/rez Full documentation at http://godoc.org/github.com

Benoît Amiaux 206 Jun 23, 2022
Pure golang image resizing

This package is no longer being updated! Please look for alternatives if that bothers you. Resize Image resizing for the Go programming language with

Jan Schlicht 2.8k Jun 26, 2022
Image resizing for the Go programming language with common interpolation methods

This package is no longer being updated! Please look for alternatives if that bothers you. Resize Image resizing for the Go programming language with

null 1 Dec 14, 2021
A Go package converting a monochrome 1-bit bitmap image into a set of vector paths.

go-bmppath Overview Package bmppath converts a monochrome 1-bit bitmap image into a set of vector paths. Note that this package is by no means a sophi

tunabay 2 Mar 22, 2022
Resize upladed images to s3 bucket with given sizes, and uploades new images back to bucket

Features Resize upladed images to s3 bucket with given sizes, and uploades new images back to bucket Environment Variables IMAGE_SIZES - formax 200x20

null 1 Feb 2, 2022
Read and write Netpbm images from Go programs

netpbm Introduction netpbm is a package for the Go programming language that implements image decoders and encoders for the Netpbm image formats. The

Scott Pakin 15 Aug 31, 2021
Resize images and animated GIFs in Go

Lilliput relies on mature, high-performance C libraries to do most of the work of decompressing, resizing and compressing images. It aims to do as little memory allocation as possible and especially not to create garbage in Go. As a result, it is suitable for very high throughput image resizing services.

Discord 1.8k Jun 30, 2022
A go library for reading and creating ISO9660 images

iso9660 A package for reading and creating ISO9660, forked from https://github.com/kdomanski/iso9660. Requires Go 1.13 or newer. Joliet and Rock Ridge

Karpelès Lab Inc. 8 Mar 4, 2021
A cross-platform tool to convert images into ascii art and print them on the console

A cross-platform tool to convert images into ascii art and print them on the console

Zoraiz Hassan 872 Jun 29, 2022
Pure Golang Library that allows simple LSB steganography on images

Steganography Lib Steganography is a library written in Pure go to allow simple LSB steganography on images. It is capable of both encoding and decodi

Rafael Passos 147 Jun 30, 2022
Reproducing images with geometric primitives.

Primitive Pictures Reproducing images with geometric primitives. How it Works A target image is provided as input. The algorithm tries to find the sin

Michael Fogleman 11.9k Jun 27, 2022
An iterative algorithm to generate high quality triangulated images.

Triangula uses a modified genetic algorithm to triangulate images. It works best with images smaller than 3000px and with fewer than 3000 points, typically producing an optimal result within a couple of minutes.

null 3.7k Jun 29, 2022
Generate high-quality triangulated art from images.

An iterative algorithm to generate high quality triangulated images.

null 53 May 26, 2021
Convert images to computer generated art using delaunay triangulation.

▲ Triangle is a tool for generating triangulated image using delaunay triangulation. It takes a source image and converts it to an abstract image comp

Endre Simo 2k Jun 29, 2022
Emoji images for Ebiten

Ebiten Emoji Alpha version: The API is not stable yet Package emoji provides Emoji images for Ebiten. Usage func (*YourGame) Draw(screen *ebiten.Image

Ebiten 16 Jun 3, 2022
An experiment in rendering images with Slack custom emojis.

emojimage An experiment in rendering images with Slack custom emojis. Example Usage 1. Initializing your workspace First, you'll need to upload 1,332

Caleb Denio 9 Mar 12, 2022
a tool to output images as RGB ANSI graphics on the terminal

imgcat Tool to output images in the terminal. Built with bubbletea install homebrew brew install trashhalo/homebrew-brews/imgcat prebuilt packages Pr

Stephen Solka 458 Jun 15, 2022