Skip to contents

Feather provides binary columnar serialization for data frames. It is designed to make reading and writing data frames efficient, and to make sharing data across data analysis languages easy. read_feather() can read both the Feather Version 1 (V1), a legacy version available starting in 2016, and the Version 2 (V2), which is the Apache Arrow IPC file format. read_ipc_file() is an alias of read_feather().


read_feather(file, col_select = NULL, as_data_frame = TRUE, mmap = TRUE)

read_ipc_file(file, col_select = NULL, as_data_frame = TRUE, mmap = TRUE)



A character file name or URI, connection, raw vector, an Arrow input stream, or a FileSystem with path (SubTreeFileSystem). If a file name or URI, an Arrow InputStream will be opened and closed when finished. If an input stream is provided, it will be left open.


A character vector of column names to keep, as in the "select" argument to data.table::fread(), or a tidy selection specification of columns, as used in dplyr::select().


Should the function return a tibble (default) or an Arrow Table?


Logical: whether to memory-map the file (default TRUE)


A tibble if as_data_frame is TRUE (the default), or an Arrow Table otherwise

See also

FeatherReader and RecordBatchReader for lower-level access to reading Arrow IPC data.


# We recommend the ".arrow" extension for Arrow IPC files (Feather V2).
tf <- tempfile(fileext = ".arrow")
write_feather(mtcars, tf)
df <- read_feather(tf)
#> [1] 32 11
# Can select columns
df <- read_feather(tf, col_select = starts_with("d"))