smarter_csv
Fastest end-to-end CSV ingestion for Ruby (with C acceleration). SmarterCSV auto-detects formats, applies smart defaults, and returns Rails-ready hashes for seamless use with ActiveRecord, Sidekiq, parallel jobs, and S3 pipelines โ even for messy user-uploaded real-world data.
File Explorer
Download Latest Version (.zip)- codeql-analysis.yml
- ruby.yml
- dependabot.yml
- FUNDING.yml
- generate-upgrading-md
- benchmarks.md
- changes.md
- performance_notes.md
- benchmarks.md
- changes.md
- performance_notes.md
- .nojekyll
- _introduction.md
- bad_row_quarantine.md
- basic_read_api.md
- basic_write_api.md
- batch_processing.md
- column_selection.md
- data_transformations.md
- examples.md
- header_transformations.md
- header_validations.md
- history.md
- instrumentation.md
- migrating_from_csv.md
- options.md
- parsing_strategy.md
- real_world_csv.md
- row_col_sep.md
- ruby_csv_pitfalls.md
- upgrade_path.json
- upgrade_wizard.html
- value_converters.md
- warnings.md
- eisel_lemire.h
- eisel_lemire_powers.h
- LICENSE-fast_float-MIT
- cpu_flags.rb
- extconf.rb
- smarter_csv.c
- SmarterCSV_1.16.0_vs_previous_C-speedup.png
- SmarterCSV_1.16.0_vs_previous_C-speedup.svg
- SmarterCSV_1.16.0_vs_previous_Rb-speedup.png
- SmarterCSV_1.16.0_vs_previous_Rb-speedup.svg
- SmarterCSV_1.16.0_vs_RubyCSV_3.3.5_speedup.png
- SmarterCSV_1.16.0_vs_RubyCSV_3.3.5_speedup.svg
- SmarterCSV_1.17.0_vs_previous_C-speedup.svg
- SmarterCSV_1.17.0_vs_previous_Rb-speedup.svg
- SmarterCSV_1.17.0_vs_RubyCSV_3.3.5_speedup.svg
- auto_detection.rb
- errors.rb
- file_io.rb
- hash_transformations.rb
- header_transformations.rb
- header_validations.rb
- headers.rb
- parser.rb
- peekable_io.rb
- reader.rb
- reader_options.rb
- version.rb
- writer.rb
- writer_options.rb
- smarter_csv.rb
- binary_file_spec.rb
- chunked_reading_spec.rb
- chunked_spec.rb
- convert_values_to_numeric_spec.rb
- value_converters_spec.rb
- each_spec.rb
- bom_issues_spec.rb
- carriage_return_spec.rb
- column_separator_spec.rb
- emoji_spec.rb
- line_ending_spec.rb
- valid_unicode_spec.rb
- additional_separator_spec.rb
- basic_spec.rb
- empty_columns_spec.rb
- parse_spec.rb
- simple_spec.rb
- c_transformations_spec.rb
- remove_empty_values_spec.rb
- remove_keys_from_hashes_spec.rb
- remove_not_mapped_keys_spec.rb
- remove_values_matching_spec.rb
- remove_zero_values_spec.rb
- duplicate_headers_spec.rb
- header_transformation_spec.rb
- invalid_headers_spec.rb
- keep_headers_spec.rb
- key_mapping_spec.rb
- no_header_spec.rb
- not_downcase_header_spec.rb
- required_headers_spec.rb
- silence_missing_keys_spec.rb
- strings_as_keys_spec.rb
- strip_chars_from_headers_spec.rb
- backslash_in_quoted_field_spec.rb
- escaped_quote_chars_spec.rb
- long_quoted_field_scan_spec.rb
- quote_boundary_modes_spec.rb
- quoted_spec.rb
- unescape_quotes_invariants_spec.rb
- bad_row_quarantine_spec.rb
- column_selection_spec.rb
- cr_in_unquoted_fields_spec.rb
- empty_lines_spec.rb
- extra_columns_spec.rb
- hard_sample_spec.rb
- malformed_spec.rb
- problematic_spec.rb
- quote_boundary_spec.rb
- strip_whitespace_spec.rb
- trading_spec.rb
- ignore_comments_spec.rb
- peekable_io_integration_spec.rb
- skip_lines_spec.rb
- additional_separator.csv
- auto_fallback_rfc.csv
- bad_row_multiline.csv
- bad_row_quarantine.csv
- bad_row_quarantine_multi.csv
- basic.csv
- binary.csv
- binary_no_headers.csv
- bom_test_0000feff.csv
- bom_test_efbbbf.csv
- bom_test_feff.csv
- bom_test_fffe.csv
- bom_test_fffe0000.csv
- carriage_returns_n.csv
- carriage_returns_quoted.csv
- carriage_returns_r.csv
- carriage_returns_rn.csv
- chunk_cornercase.csv
- chunked.csv
- closing_quote_non_delimiter.csv
- continuation_lines.csv
- duplicate_headers.csv
- emoji.csv
- empty.csv
- empty_columns_1.csv
- empty_columns_2.csv
- empty_headers.csv
- empty_lines.csv
- escaped_quote_char.csv
- escaped_quote_char_2.csv
- escaped_quote_char_3.csv
- escaped_quote_char_4.csv
- extra_columns.csv
- floats_and_dates.csv
- hard_sample.csv
- ignore_comments.csv
- ignore_comments2.csv
- key_mapping.csv
- line_endings_n.csv
- line_endings_r.csv
- line_endings_rn.csv
- lots_of_columns.csv
- malformed.csv
- malformed_data_eof.csv
- malformed_data_gobbled.csv
- malformed_header.csv
- money.csv
- no_header.csv
- numeric.csv
- pets.csv
- problematic.csv
- quote_char.csv
- quoted.csv
- quoted2.csv
- quoted_header_with_comma.csv
- required_headers.csv
- sample.csv
- separator_chars_between_quotes.csv
- separator_chars_between_quotes_no_headers.csv
- separator_colon.csv
- separator_colon_no_headers.csv
- separator_comma.csv
- separator_comma_no_headers.csv
- separator_comma_no_headers_will_fail.csv
- separator_pipe.csv
- separator_pipe_no_headers.csv
- separator_semi.csv
- separator_semi_no_headers.csv
- separator_tab.csv
- separator_tab_no_headers.csv
- silence_missing_keys.csv
- simple_no_header.csv
- simple_no_header_windows.csv
- simple_with_header.csv
- simple_with_header_utf8.csv
- simple_with_header_utf8_windows.csv
- simple_with_header_windows.csv
- simple_with_header_with_space.csv
- skip_lines.csv
- trading.csv
- transformations.csv
- unquoted_quote_midfield.csv
- user_import.csv
- valid_unicode.csv
- with_dashes.csv
- with_dates.csv
- column_separator_spec.rb
- max_size_spec.rb
- nil_line_input_spec.rb
- old_csv_library_spec.rb
- README.md
- rfc4180_and_more_spec.rb
- blank_spec.rb
- class_level_errors_spec.rb
- class_level_warnings_spec.rb
- close_file_spec.rb
- count_quote_chars_ruby_fallback_spec.rb
- cpu_flags_spec.rb
- errors_preservation_spec.rb
- field_size_limit_spec.rb
- file_encoding_spec.rb
- float_parsing_parity_spec.rb
- floats_spec.rb
- guess_line_ending_spec.rb
- instrumentation_hooks_spec.rb
- option_validations_spec.rb
- parity_fuzz_spec.rb
- parser_ruby_fallback_spec.rb
- peekable_io_spec.rb
- reader_options_processing_spec.rb
- reader_options_validation_coverage_spec.rb
- reader_spec.rb
- record_warning_routing_spec.rb
- tempfile_safety_spec.rb
- writer_options_spec.rb
- writer_spec.rb
- .rspec
- .rspec.status
- backslash_and_quote_char_edge_cases_spec.rb
- spec.opts
- spec_helper.rb
- .gitignore
- .rspec
- .rubocop.yml
- .rvmrc
- .travis.yml
- CHANGELOG.md
- CONTRIBUTORS.md
- Gemfile
- LICENSE.txt
- Rakefile
- README.md
- smarter_csv.gemspec
- UPGRADING.md
# Installation Guide
1. Get the code
git clone https://github.com/tilo/smarter_csv
Downloads the entire project code from GitHub to your computer.
cd smarter_csv
Moves into the project folder you just downloaded.
2. Ruby
Easy RecommendedPrerequisites
$ bundle
Type this command into your terminal and run it.
SMARTER_CSV_PERFORMANCE=tuned bundle install # same, under Bundler
Installs the Ruby libraries listed in the Gemfile.
If bundle install finishes without errors, continue with the run command from the README (e.g. rails server).
Pulled directly from this repo's README.
// repository documentation
Was this content helpful?
(0 ratings)
