# Frictionless Projects
Open source projects for working with data.
The Frictionless Data project provides a rich set of open source projects for working with data. There are tools, a visual application, and software for many programming platforms.
This document is an overview of the Frictionless Projects - for more in-depth information, please click on one of the projects below and you will be redirected to a corresponding documentation portal.
# Software and Standards
It’s a list of core Frictionless Projects developed by the core Frictionless Team:
Data management application for Browser and Desktop for working with tabular data.
Python framework to describe, extract, validate, and transform tabular data.
Static site generator that extends Markdown with charts, tables, scripts, and more.
Github Action allowing you to validate tabular data on every commit to your repository.
Lightweight yet comprehensive data standards as Data Package and Table Schema.
A web platform built on Frictionless Data that allows discovering, publishing, and sharing data.
# Which software is right for me?
Choosing the right tool for the job can be challenging. Here are our recommendations:
# Visual Interfaces
If you prefer to use a visual interface:
- Frictionless Application (coming soon): We’re working on our brand-new Frictionless Application that will be released in 2021. Until then, you can use Data Package Creator (opens new window) to create and edit data packages and Goodtables On-Demand (opens new window) for data validation.
- Frictionless Repository: For ensuring the quality of your data on Github, Frictionless provides Frictionless Repository (opens new window). This creates visual quality reports and validation statuses on Github everytime you commit your data.
- Datahub: For discovering, publishing, and sharing data we have Datahub (opens new window) which is built on Frictionless software. Using this software as a service, you can sign-in and find, share, and publish quality data.
# Command-line Interfaces
If you like to write commands in the command-line interface:
- Frictionless Framework: For describing, extracting, validating, and transforming data, Frictionless provides the Frictionless Framework’s (opens new window) command-line interface. Using the “frictionless” command you can achieve many goals without needing to write Python code.
- Livemark: For data journalists and technical writers we have a project called Livemark (opens new window). Using the “livemark” command in the CLI you can publish a website that incorporates Frictionless functions and is powered by markdown articles.
# Programming Languages
If you want to use or write your own Frictionless code:
- Frictionless Universe: For Frictionless implementations in other languages like R (opens new window) or Java and visual components, we have Frictionless Universe. Each library provides metadata validation and editing along with other low-level data operations like reading or writing tabular files.
# Which standard is right for me?
To help you pick a standard to use, we’ve categorized them according to how many files you are working with.
# Collection of Files
If you have more than one file:
- Data Package: Use a Data Package (opens new window) for describing datasets of any file format. Data Package is a basic container format for describing a collection of data in a single “package”. It provides a basis for convenient delivery, installation and management of datasets.
- Fiscal Data Package: For fiscal data, use a Fiscal Data Package (opens new window). This lightweight and user-oriented format is for publishing and consuming fiscal data. It concerns with how fiscal data should be packaged and providing means for publishers to best convey the meaning of the data - so it can be optimally used by consumers.
# Individual File
If you need to describe an individual file:
- Data Resource: Use Data Resource (opens new window) for describing individual files. Data Resource is a format to describe and package a single data resource of any file format, such as an individual table or file. It can also be extended for specific use cases.
- Tabular Data Resource: For tabular data, use the Data Resource extension called Tabular Data Resource (opens new window). Tabular Data Resource describes a single tabular data resource such as a CSV file. It includes support for metadata and schemas to describe the data content and structure.
- Table Schema: To describe only the schema of a tabular data file, use Table Schema (opens new window). Table Schema is a format to declare a schema for tabular data. The schema is designed to be expressible in JSON. You can have a schema as independent metadata or use it with a Tabular Data Resource.
- CSV Dialect: To specify the CSV dialect within a schema, use CSV Dialect (opens new window). This defines a format to describe the various dialects of CSV files in a language agnostic manner. This is important because CSV files might be published in different forms, making it harder to read the data without errors. CSV Dialect can be used with a Tabular Data Resource to provide additional information.