carrierwaveuploader/carrierwave

Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 32 minutes ago
Added to GitGenius on September 7th, 2026
Created on August 28th, 2008
Open Issues & Pull Requests: 43 (+0)
GitHub issues: Enabled
Number of forks: 1,647
Total Stargazers: 8,775 (+0)
Total Subscribers: 133 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

CarrierWave is a Ruby gem that provides file upload handling for Rails, Sinatra, and other Rack-based web frameworks.

The tool solves the problem of managing file uploads in Ruby applications by offering a flexible, class-based approach. It separates upload logic into dedicated uploader classes that can be mounted on model attributes. Files are handled through two storage layers: a cache for temporary storage during upload and a store for permanent storage after model persistence. The gem supports multiple storage backends, including filesystem and cloud storage options, allowing developers to choose their storage strategy independently of application code.

Developers should adopt CarrierWave if they need straightforward file upload integration with Ruby web applications, particularly those using ActiveRecord, DataMapper, Mongoid, or Sequel ORMs. The tool is well-suited for projects requiring customizable upload processing, as uploader classes can be tailored with format conversions and other transformations. Those migrating from version 2.x should be aware that version 3.0 changed how file extensions are handled during format conversion, which may affect cache file compatibility in blue-green deployments or require recreation of stored file versions.

The project maintains active issue tracking and directs users to community resources on Stack Overflow for usage questions rather than the issue tracker. Documentation is available through RubyDoc and an extensive wiki covering known limitations and how-to guides. The codebase shows responsiveness to compatibility concerns, as evidenced by configuration options added to preserve backward behavior when needed.