shrinerb/shrine

File Attachment toolkit for Ruby applications

View on GitHub ↗Jump to charts ↓

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 46 minutes ago
Added to GitGenius on September 21st, 2026
Created on October 25th, 2015
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Enabled
Number of forks: 277
Total Stargazers: 3,284 (+0)
Total Subscribers: 36 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 22.1 hours
Mean response time: 216.5 days
90th percentile: 737.7 days
Tracked items: 26

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • feature (2)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Shrine is a file attachment toolkit for Ruby applications that handles uploads, storage, and processing through a modular plugin system.

Shrine solves the problem of managing file attachments across different storage backends and ORM frameworks by providing a unified interface. It uses a modular architecture where you load only the plugins you need, keeping the core lightweight. The toolkit supports streaming for memory-efficient handling of large files, integrates with multiple storage options including disk, AWS S3, Google Cloud, and Cloudinary, and works with persistence layers like ActiveRecord, Sequel, ROM, Hanami, and Mongoid. It enables flexible file processing through eager or on-the-fly thumbnail generation using ImageMagick or libvips, validates files based on extracted metadata, and supports both simple and presigned direct uploads to reduce server load.

Shrine suits applications that need reliable file handling without being locked into a specific storage backend or ORM. It works well for projects requiring large file uploads, background processing of attachments, or resumable uploads on S3 or tus servers. The README names Paperclip, CarrierWave, Dragonfly, Refile, and Active Storage as similar libraries but does not detail how Shrine compares to them beyond noting that it was inspired by Refile's backend concept and direct upload approach, and by Roda's plugin system design.

The project maintains active discussion forums and a wiki alongside its main documentation site. Contributions are guided by a code of conduct and documented contributing guidelines. The toolkit has demo implementations available for both Roda and Rails frameworks to help developers understand integration patterns.