# 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.
TIP
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:
Open Data Editor
Data management desktop application to work with tabular data.
Frictionless Framework
Python framework to describe, extract, validate, and transform tabular data.
Livemark
Static site generator that extends Markdown with charts, tables, scripts, and more.
Frictionless Repository
Github Action allowing you to validate tabular data on every commit to your repository.
Frictionless Data Package
A set of simple yet extensible specifications to describe datasets, data files, and tabular data.
Datahub
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:
- Open Data Editor (coming soon): We’re working on our brand-new Frictionless application Open Data Editor (opens new window) that will be released in December 2024. 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.
- Datahub: Frictionless provides a command-line tool called Data (opens new window) which is an important part of the Datahub project. The “data” command is available for a JavaScript environment and it helps you to interact with data stored on Datahub.
# Programming Languages
If you want to use or write your own Frictionless code:
- Frictionless Framework: For general data programming in Python, the Frictionless Framework (opens new window) is the way to go. You can describe, extract, validate, and transform your data. It’s also possible to extend the framework by adding new validation checks, transformation steps, etc. In addition, there is a lightweight version of the framework written in JavaScript (opens new window).
- 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.
- Table Dialect: To specify the table dialect within a schema, use Table Dialect (opens new window). This defines a format to describe the various dialects of table files in a language agnostic manner. This is important because table files might be published in different forms, making it harder to read the data without errors. Table Dialect can be used with a Tabular Data Resource to provide additional information.