Wicked-Fast Streaming 'JSON' ('ndjson') Reader
Bob Rudis (@hrbrmstr), Niels Lohmann (C++ json parser),
Deepak Bandyopadhyay (C++ gzstream), Lutz Kettner (C++ gzstream)
Streaming 'JSON' ('ndjson') has one 'JSON' record per-line and many modern
'ndjson' files contain large numbers of records. These constructs may not be
columnar in nature, but it's often useful to read in these files and "flatten"
the structure out to work in an R data.frame-like context. Functions are provided that
make it possible to read in plain 'ndjson' files or compressed ('gz') 'ndjson'
files and either validate the format of the records or create "flat" data.table
('tbl_dt') structures from them.

Bob Rudis (bob@rud.is), Niels Lohmann (C++ json parser),
Deepak Bandyopadhyay (C++ gzstream), Lutz Kettner (C++ gzstream)
Streaming 'JSON' ('ndjson') has one 'JSON' record per-line and
many modern 'ndjson' files contain large numbers of records. These constructs
may not be columnar in nature, but it is often useful to read in these files
and "flatten" the structure out to enable working with the data in an R
'data.frame'-like context. Functions are provided that make it possible to read
in plain 'ndjson' files or compressed ('gz') 'ndjson' files and either validate
the format of the records or create "flat" 'data.table' structures from them.

c(
person("Bob", "Rudis", email = "bob@rud.is", role = c("aut", "cre"),
comment = c(ORCID = "0000-0001-5670-2640")),
person("Niels", "Lohmann", role = "aut", comment = "C++ json parser"),
person("Deepak", "Bandyopadhyay", role = "aut", comment = "C++ gzstream"),
person("Lutz", "Kettner", role = "aut", comment = "C++ gzstream)")
)
Bob Rudis [aut, cre] (<https://orcid.org/0000-0001-5670-2640>),
Niels Lohmann [aut] (C++ json parser),
Deepak Bandyopadhyay [aut] (C++ gzstream),
Lutz Kettner [aut] (C++ gzstream))

c( person("Bob", "Rudis", email = "bob@rud.is", role =
c("aut", "cre"), comment = c(ORCID = "0000-0001-5670-2640")),
person("Niels", "Lohmann", role = "aut", comment = "C++ json
parser"), person("Deepak", "Bandyopadhyay", role = "aut", comment
= "C++ gzstream"), person("Lutz", "Kettner", role = "aut",
comment = "C++ gzstream"), person("Neal", "Fultz", role = "ctb",
comment = "Rcpp integration"), person("Maarten", "Demeyer", role = "ctb",
comment = "dtplyr cleanup"))
Streaming 'JSON' ('ndjson') has one 'JSON' record per-line
and many modern 'ndjson' files contain large numbers of records.
These constructs may not be columnar in nature, but it is often
useful to read in these files and "flatten" the structure out to
enable working with the data in an R 'data.frame'-like context.
Functions are provided that make it possible to read in plain
'ndjson' files or compressed ('gz') 'ndjson' files and either
validate the format of the records or create "flat" 'data.table'
structures from them.
Bob Rudis [aut, cre] (<https://orcid.org/0000-0001-5670-2640>),
Niels Lohmann [aut] (C++ json parser),
Deepak Bandyopadhyay [aut] (C++ gzstream),
Lutz Kettner [aut] (C++ gzstream),
Neal Fultz [ctb] (Rcpp integration),
Maarten Demeyer [ctb] (dtplyr cleanup)