imazen / imageflow

High-performance image manipulation for web servers. Includes imageflow_server, imageflow_tool, and libimageflow
https://docs.imageflow.io/
GNU Affero General Public License v3.0
4.14k stars 140 forks source link

Using in a Elixir web application #579

Closed gushonorato closed 3 years ago

gushonorato commented 3 years ago

Hello,

first of all, thanks for all work done on this project.

I have an Elixir application, and I'd like to serve my app images using ImageFlow. I see that I have three options for doing that. The first is to use .NET server, but I don't like much the idea of configuring a .NET production environment. Another one is to use imageflow_server, but as I read in the documentation, it's not suited for production. The last one is to port the .NET server to Elixir, but I'll need some directions from you and focus on a small feature set for now.

Can you help me?

Cheers, Gustavo

lilith commented 3 years ago

Sure! I guess you're already aware of the community-maintained Elixir bindings here: https://github.com/naps62/imageflow_ex

The complex parts of the .NET server are for handling disk caching in a fast and space-constrained manner. Caching to S3 or Azure Blob Storage is much easier to implement, since the cloud provider can handle object eviction.

https://github.com/imazen/imageflow-dotnet-server/blob/main/src/Imageflow.Server/ImageflowMiddleware.cs is probably the place to start, although I would read the whole Imageflow.Server project before starting.

I would say that now that .NET supports docker (and does so well), it might not be difficult to just deploy Imageflow .NET Server.

gushonorato commented 3 years ago

Hello @lilith, I'll follow your advice try to use the .NET server through docker. I come back later if something goes wrong and I decide to take another direction. Much thanks!