Об этом проекте
RustyCSV — это специализированная библиотека для парсинга и кодирования CSV в Elixir, реализованная как Rust Native Interface (NIF) для максимальной производительности. Она предназначена для замены NimbleCSV, сохраняя совместимость API, но добавляя передовые функции, такие как ускорение SIMD, параллельный парсинг и потоковая обработка с ограниченной памятью. Библиотека не оборачивает существующие Rust-краты CSV, а напрямую интегрируется с виртуальной машиной BEAM для эффективного парсинга в термины Erlang, что снижает накладные расходы на выделение памяти и нагрузку на планировщик.
Ключевые особенности включают три стратегии парсинга: SIMD (по умолчанию, самая быстрая для большинства файлов), параллельная (для больших или насыщенных кавычками файлов) и потоковая (для неограниченных данных с ограниченной памятью). RustyCSV поддерживает несколько кодировок (UTF-8, UTF-16, Latin-1, UTF-32), конфигурации с несколькими разделителями и преобразование заголовков в карты. Она полностью соответствует RFC 4180 и прошла валидацию на обширных тестовых наборах. Библиотека также предлагает ускоренное NIF-кодирование, подходящее для высокопроизводительного параллельного экспорта, и включает опциональную поддержку mimalloc для улучшенного управления памятью в многопоточных сценариях.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.