A modular Ruby toolkit for handling file uploads, processing, and storage with support for cloud services and multiple ORMs.
Shrine is a Ruby toolkit for handling file attachments in web applications, providing a modular and flexible solution for uploads, storage, processing, and validation. It solves the problem of managing file uploads efficiently by offering a plugin-based architecture that integrates with various cloud storage services and ORMs.
Ruby developers building applications that require robust file upload functionality, such as content management systems, e-commerce platforms, or media-heavy applications.
Developers choose Shrine for its modular design, extensive plugin ecosystem, and seamless integration with multiple ORMs and cloud storage providers, offering greater flexibility and control compared to other file attachment libraries.
File Attachment toolkit for Ruby applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The plugin-based architecture allows loading only necessary features, reducing bloat and enabling tailored solutions, as emphasized in the README's philosophy inspired by Roda.
Integrates with multiple cloud providers like AWS S3, Google Cloud Storage, and Cloudinary, offering flexibility in storage options without vendor lock-in.
Supports direct and resumable uploads via Uppy and S3/tus, improving user experience for large files, as detailed in the Key Features section.
Works seamlessly with ActiveRecord, Sequel, ROM, Hanami, and Mongoid, making it versatile for various Ruby frameworks and databases.
Setting up requires manual configuration of storages, plugins, and integrations, which can be time-consuming and error-prone compared to more integrated solutions.
Direct upload features rely on JavaScript libraries like Uppy, adding frontend complexity and potential compatibility issues for teams not using modern JS stacks.
Image processing depends on external tools like ImageMagick or libvips, requiring separate installation and configuration, which can be a barrier in some environments.
shrine is an open-source alternative to the following products:
A Ruby on Rails framework for uploading and managing files in cloud storage services like Amazon S3, Google Cloud, and Microsoft Azure.
CarrierWave is a Ruby gem for file uploads in web applications, providing a simple and flexible way to handle file storage, processing, and integration with cloud services.
Dragonfly is a modern Redis-compatible in-memory data store designed for cloud applications, with features like scaling and persistence.
Paperclip is a Ruby on Rails gem for handling file uploads and attachments, providing an easy way to manage files with various storage backends.
A Ruby library for handling file uploads in web applications, providing a simple and flexible way to manage file attachments.