GithubHelp home page GithubHelp logo

Some corrections about imgproxy HOT 2 OPEN

imgproxy avatar imgproxy commented on May 14, 2024 2
Some corrections

from imgproxy.

Comments (2)

DarthSim avatar DarthSim commented on May 14, 2024

Hi Bernardo,

Do you mind clarifying which of the 12factor principles thumbor fails to achieve? If we are missing something it would be in our interest to improve. Thumbor was designed with utmost extensibility in mind, and as such allows all configuration to be overriden using environment variables and scales up using processes.

I didn't find anything about configuration via environment variables in Thumbor's documentstion. This is one of the core principles of 12factor. Correct please me if I'm wrong.

Thumbor also does not use GraphicsMagick, at least not stock thumbor. Thumbor uses Pillow engine, an engine in Python C. Maybe not as fast as libvips, but that's not an issue since thumbor's extensible nature allows us to try many different engines (also available GraphicsMagick and OpenCV).

As far as I knew at the moment of writing the article, Pillows uses GM under the hood. we'll fix the article if it is not true.

Also, the assertion you make about thumbor's caching engine is just not true. Thumbor does feature an extensible storage of both original and transformed files. This extensibility allows you to use AWS S3, Redis, MongoDB, and a myriad other storage services for your images. That said, thumbor's default storage engine is the filesystem, meaning no additional software is required whatsoever.

We consider all image processing servers for container-based usage, where filesystem cashe is definitely not a good option. But true is true, with filesystem cache of S3 it doesn't need any additional software.

from imgproxy.

heynemann avatar heynemann commented on May 14, 2024

The part about environment variables is due to our usage of derpconf. It allows users to override configuration using envs. I'm double checking anyway. Thanks for calling us on that.

I don't think pil depends on graphicsmagick at all. I just ran an ubuntu container (log below), installed python and pillow. No need to install graphicsmagick at all. It would not even make sense to bench pillow against graphicsmagick if that were the case.

On the caching bit. Even with containers, you don't need to use the ephemeral filesystem of the container. You can use any mounted volume (a named volume, a cache of S3 as you said or any other combination). We at globo.com use an NFS mount for our filer system. We don't use AWS, as we have our own data center.

About the performance side, this might interest you: http://python-pillow.org/pillow-perf/
They even compare libvips to pillow-simd. I found it very interesting.

Thank you very much for the quick replies Sergey! Keep up the good work!

$ docker run -it python:2.7 /bin/sh                                                                                                                                                 
# pip install pillow
Collecting pillow
  Downloading https://files.pythonhosted.org/packages/00/49/a0483e7308b4b04b5a898789911dbb876d9fea54e7df0453915e47744cfd/Pillow-5.1.0-cp27-cp27mu-manylinux1_x86_64.whl (2.0MB)
    100% |████████████████████████████████| 2.0MB 13.9MB/s
Installing collected packages: pillow
Successfully installed pillow-5.1.0
# python
Python 2.7.15 (default, May  5 2018, 03:27:20)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import Image
>>>
#

from imgproxy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.