A flexible file upload and attachment library for Elixir with built-in S3 and ImageMagick integrations.
Waffle is a flexible file upload and attachment library for Elixir that simplifies handling file uploads, storage, and transformations. It provides built-in integrations for Amazon S3 and ImageMagick, allowing developers to manage file attachments with minimal configuration. The library supports multiple storage providers and includes tools for generating uploader modules and processing files.
Elixir developers building applications that require file upload functionality, such as web apps with user avatars, document storage, or image processing needs. It's particularly useful for teams using Phoenix and Ecto who need a robust, configurable upload solution.
Developers choose Waffle for its flexibility, ease of integration with Elixir ecosystems like Ecto, and support for multiple storage backends. Its straightforward configuration and community-driven extensions make it a versatile alternative to building custom upload solutions from scratch.
Flexible file upload and attachment library for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built-in support for local storage and Amazon S3, with community extensions for providers like Google Cloud and Azure, allowing easy adaptation to different hosting environments.
The waffle_ecto package provides seamless changeset support and cache-busting URLs, streamlining database interactions for file attachments in Phoenix applications.
Integrated ImageMagick support enables server-side image processing, such as resizing, directly within uploader modules, reducing external service dependencies.
The mix waffle.g generator quickly scaffolds uploader modules with configurable options, speeding up development for common file types like avatars or documents.
Testing S3 functionality requires setting multiple environment variables and configuring buckets with public access and ACLs, adding overhead and security concerns in development.
ImageMagick is mandatory for transformations, which can be a heavy dependency on servers and may conflict with projects using alternative image processing libraries.
Support for non-S3 storage providers relies on community-maintained packages, which may have inconsistent updates, documentation, or long-term reliability compared to core features.