Hydra Logo


The packages that make up the Queryverse

Queryverse.jl is the meta-package for the Queryverse. It installs and makes usable most of the other packages that are described below. The main purpose of this package is to make it easier to install all of the Queryverse in one go.

Data Manipulation

Query.jl provides commands to query and manipulate any data source. It provides tools to filter, sort, group, join and do many other operations on datasets. It works equally well with tabular and non-tabular data sources.

QuerySQLite.jl provides a SQLite backend for Query.jl. One can write normal Query.jl queries against a SQLite database. These queries are automatically translated into SQL, so that all processing of such a query occurs in the database.

DataTables.jl provides a minimalistic, lightweight and read-only tabular data structure.

Data Visualization

VegaLite.jl provides an intuitive and easy to use Julia API for the grammar of interactive graphics Vega-Lite platform. It is the main plotting package for Queryverse.

DataVoyager.jl is a Julia package that provides an interactive data exploration tools. It is based on the Voyager project and it tightly integrated with VegaLite.jl.

ElectronDisplay.jl is an Electron based figure and table display for Julia. When the package is loaded, figures from various plotting packages open up in a custom Electron window. The package natively supports interactive figures from VegaLite.jl and PlotlyJS.jl. It also provides a grid view for tabular data.

File IO

CSVFiles.jl can read and write CSV files. Under the hood it uses the extremly fast TextParse.jl package.

FeatherFiles.jl can read and write Feather files.

ExcelFiles.jl can read and write Excel Files.

StatFiles.jl can read SPSS, STATA and SAS files.

ParquetFiles.jl can read Parquet files.

VegaDatasets.jl provides some example datasets from the Vega Datasets project.

Low level infrastructure

TableTraits.jl contains the core table interface that powers all of Queryverse and enables seemless interopability between lots of different packages that work with tabular data.

DataValues.jl contains the core types that the Queryverse uses to handle missing (also known as NA or NULL) data.

IteratorInterfaceExtensions.jl has a few extensions to the standard Julia iterator interface that are used throughout the Queryverse.

TableTraitsUtils.jl provides helper functions and types that make it easier to implement the TableTraits.jl interface.

TableShowUtils.jl provides various functions that are used throughout the Queryverse to show tabular data in the REPL and in some other MIME formats.

IterableTables.jl contains implementations of the TableTraits.jl interface for packages that don't support this interface natively. As more packages support TableTraits.jl out of the box, the role of this package becomes less and less important.

Internal packages

FeatherLib.jl provides low level functions to read Feather Files. The FeatherFiles.jl packages uses it to provide a user friendly API for Feather files.

ExcelReaders.jl provides a low level interface to read Excel files. The ExcelFiles.jl packages uses it to provide a user friendly API for Excel files.

QueryOperators.jl contains the low level query operator function definitions and the default implementation of the query operators for iterable sources. The Query.jl package provides a user friendly API for this functionality.