Fast and secure standalone server for resizing and converting remote images

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.

Owner
imgproxy
Fast and secure standalone server for resizing and converting remote images
imgproxy
Comments
  • 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.

  • 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
    
  • 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

  • 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?

  • 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!!

  • 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:///relaxation-mode.jpg@webp' | 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:///relaxation-mode.jpg@png' | 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.

  • 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.

  • 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.

  • 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.

  • 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

  • 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)

  • PNG checkerboard background

    PNG checkerboard background

    Hey! We'd like to allow you users to add the checkerboard background to their PNG images.

    Any suggestions on how we can achieve this solely with imgproxy? 🙏

    I've managed to accomplish this by combining watermarks with chained pipelines. /wm:1:re/wmu:path-to-checkboard-svg/-/wm/1:ce/wmu:path-to-original-png/plain/path-to-original-png. First I overlay the entire png with the checkboard using a custom watermark. Since the original image is now covered I add it again as a custom watermark.

    Performance is far from great and this will also fill up the IMGPROXY_WATERMARKS_CACHE_SIZE.

    I was hoping to achieve this without adding an additional service to our processing pipeline.

  • Bump github.com/fsouza/fake-gcs-server from 1.42.2 to 1.43.0

    Bump github.com/fsouza/fake-gcs-server from 1.42.2 to 1.43.0

    Bumps github.com/fsouza/fake-gcs-server from 1.42.2 to 1.43.0.

    Release notes

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

    v1.43.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/fsouza/fake-gcs-server/compare/v1.42.2...v1.43.0

    Commits
    • e6f1413 Make resumable uploads work from browser with signed url (#1022)
    • 041da75 Do not escape the object name in the fs backend (#1017)
    • 23a976c Add ability to change log level (#1023)
    • a72af60 Custom metadata missing in Public and Signed URLs #1019 (#1020)
    • 514832f build(deps): bump actions/cache from 3.2.1 to 3.2.2 (#1021)
    • ef33501 build(deps): bump actions/cache from 3.2.0 to 3.2.1 (#1018)
    • 10234b0 build(deps): bump actions/cache from 3.0.11 to 3.2.0 (#1015)
    • 07968e5 build(deps): bump google.golang.org/api in /examples/go (#1011)
    • 8385d06 build(deps): bump google.golang.org/api from 0.104.0 to 0.105.0 (#1012)
    • 03a2199 build(deps): bump actions/setup-go from 3.4.0 to 3.5.0 (#1008)
    • 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)
  • Bump github.com/aws/aws-sdk-go from 1.44.157 to 1.44.171

    Bump github.com/aws/aws-sdk-go from 1.44.157 to 1.44.171

    Bumps github.com/aws/aws-sdk-go from 1.44.157 to 1.44.171.

    Release notes

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

    Release v1.44.171 (2022-12-30)

    Service Client Updates

    • service/cloudfront: Updates service API and documentation
      • Extend response headers policy to support removing headers from viewer responses
    • service/iotfleetwise: Updates service documentation

    Release v1.44.170 (2022-12-29)

    Service Client Updates

    • service/apigateway: Updates service documentation
      • Documentation updates for Amazon API Gateway
    • service/elasticmapreduce: Updates service API and documentation
      • Added GetClusterSessionCredentials API to allow Amazon SageMaker Studio to connect to EMR on EC2 clusters with runtime roles and AWS Lake Formation-based access control for Apache Spark, Apache Hive, and Presto queries.
    • service/secretsmanager: Updates service API and documentation
      • Added owning service filter, include planned deletion flag, and next rotation date response parameter in ListSecrets.
    • service/wisdom: Updates service API and documentation

    Release v1.44.169 (2022-12-28)

    Service Client Updates

    • service/elasticache: Updates service API and documentation
      • This release allows you to modify the encryption in transit setting, for existing Redis clusters. You can now change the TLS configuration of your Redis clusters without the need to re-build or re-provision the clusters or impact application availability.
    • service/network-firewall: Updates service API and documentation
    • service/rds: Updates service API, documentation, waiters, paginators, and examples
      • This release adds support for Custom Engine Version (CEV) on RDS Custom SQL Server.
    • service/route53-recovery-control-config: Updates service documentation and paginators

    Release v1.44.168 (2022-12-27)

    Service Client Updates

    • service/memorydb: Updates service API, documentation, and paginators
    • service/transfer: Updates service API
      • Add additional operations to throw ThrottlingExceptions

    Release v1.44.167 (2022-12-23)

    Service Client Updates

    • service/connect: Updates service API and documentation
    • service/connectparticipant: Updates service API and documentation
    • service/detective: Updates service API and documentation
    • service/fsx: Updates service API and documentation
    • service/inspector2: Updates service API

    Release v1.44.166 (2022-12-22)

    ... (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)
  • Video thumbnail not generated for specific files

    Video thumbnail not generated for specific files

    Hi @DarthSim!

    For some reason, Imgproxy Pro is unable to generate thumbnails for some MP4 files. Log says "Can't download source image: Source image type not supported". I was unable to locate problem myself, files look OK. Can you please take a look? Here is one example: https://drive.google.com/file/d/1CuUuWAT5lkGp1_5D8cch5DWzf6Y_bj6v/view?usp=share_link

  • Bump github.com/DataDog/datadog-go/v5 from 5.1.1 to 5.2.0

    Bump github.com/DataDog/datadog-go/v5 from 5.1.1 to 5.2.0

    Bumps github.com/DataDog/datadog-go/v5 from 5.1.1 to 5.2.0.

    Release notes

    Sourced from github.com/DataDog/datadog-go/v5's releases.

    v5.2.0

    See the Changelog for the details.

    Changelog

    Sourced from github.com/DataDog/datadog-go/v5's changelog.

    5.2.0 / 2022-12-21

    • [BETA][FEATURE] Support sending counters and gauges with timestamp. See #262[]
    • [BUGFIX] Fix issue where ticker.Stop() wasn't being called when aggregator is stopped. See #269[], thanks [@​byronwolfman][].
    Commits
    • c4044d0 Releasing 5.2.0
    • 52098b5 ci: Updated CI to skip some tests on macOS
    • 6011596 Upgrade testify to v1.8.1
    • 9faba32 Merge pull request #269 from byronwolfman/byronwolfman/stop-aggregator-timer
    • 47827df Call ticker.Stop() when aggregator is stopped
    • 6391269 Merge pull request #262 from DataDog/remeh/timed-sample
    • da9d9c6 statsd: comments phrasing
    • 4d27807 statsd: address feedback concerning noTimestamp use.
    • 0325b2a statsd: mention a minimum datadog agent version
    • 6e8a1ef statsd: return an error if an invalid timestamp (< 0) is provided.
    • 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)
  • Bump gopkg.in/DataDog/dd-trace-go.v1 from 1.44.1 to 1.45.1

    Bump gopkg.in/DataDog/dd-trace-go.v1 from 1.44.1 to 1.45.1

    Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.44.1 to 1.45.1.

    Release notes

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

    v1.45.1

    Fix the version number reported by dd-trace-go to avoid the release candidate label.

    v1.45.0

    Summary

    Application Security Monitoring now becomes Application Security Management (ASM) with the release of IP blocking for HTTP and gRPC servers, which allows you to block attackers based on their IP addresses, managed from your denylist. You can request a private beta access to this feature here.

    Changes

    Application Performance Monitoring (APM)

    Application Security Monitoring Management (ASM)

    Others

    Fixes

    Profiler

    Full Changelog: https://github.com/DataDog/dd-trace-go/compare/v1.44.1...v1.45.0

    Commits
    • 4dbb5eb internal/version: v1.45.1
    • 4b283e1 internal/version: v1.45.0
    • b1002b1 internal/version: v1.45.0-rc.4
    • 84a08c5 internal/remoteconfig: ignore empty update
    • 64596e1 contrib/go-pg/pg.v10: Removes spankind to be default value(internal) for ORMs
    • 4cc9ed8 internal/version: v1.45.0-rc.3
    • 9291ffd internal/remoteconfig: fix http request errors
    • cf1d0a5 internal/version: v1.45.0-rc.2
    • 7064039 [go.mod] upgrade remoteconfig/state to v0.42.0-rc.1 (#1620)
    • 37d378b contrib: Fixes memory leak for spankind and component (#1618)
    • 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)
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

Jan 8, 2023
An image resizing server written in Go
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

Dec 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

Dec 11, 2022
Pure golang image resizing
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 9, 2023
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

Dec 14, 2021
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

Feb 2, 2022
A Go package converting a monochrome 1-bit bitmap image into a set of vector paths.
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

Mar 22, 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

Dec 29, 2022
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.

Jan 3, 2023
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

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

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

Dec 30, 2022
Pure Golang Library that allows simple LSB steganography on images
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

Dec 22, 2022
Reproducing images with geometric primitives.
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

Dec 31, 2022
An iterative algorithm to generate high quality triangulated images.
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.

Jan 8, 2023
Generate high-quality triangulated art from images.
Generate high-quality triangulated art from images.

An iterative algorithm to generate high quality triangulated images.

May 26, 2021
Convert images to computer generated art using delaunay triangulation.
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

Dec 29, 2022
Emoji images for Ebiten
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

Dec 11, 2022
An experiment in rendering images with Slack custom emojis.
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

Mar 12, 2022
a tool to output images as RGB ANSI graphics on the terminal
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

Dec 28, 2022