Taqueria is an extensible, open source plugin based framework for Tezos dApp development
In more practical terms, Taqueria is a task runner that you can use from the command line or the VS Code command palette to quickly accomplish tasks related to Tezos development. Taqueria uses a plugin architecture to implement tasks that provide complex and domain specific functionality
Taqueria includes:
- A command line interface (CLI) you use in your terminal through a command named
taq
- A library of plugins that add tasks and other functionality to Taqueria
- A VS Code Extension which provides the ability to run Taqueria tasks from the command palette
The Taqueria CLI is an executable binary named taq
installed globally in your shell's $PATH
Run the following in your terminal:
/bin/bash -c "$(wget -O - https://taqueria.io/install-taq.sh 2>/dev/null || curl -fsSL https://taqueria.io/install-taq.sh)"
How to verify that taq is installed properly? You can run
which taq
to verify that the taq binary can be found (via your PATH env variable). You can also runtaq --version
to verify which version you are running. If you downloaded a precompiled binary from our website, then the version # should be displayed. If you built taq from sources, then the version should displaydev-[branchName]
, such asdev-main
.
Once installed, Taqueria is run from the command line using the taq
command. The basic structure of a Taqueria command is:
taq <taskName> [options]
You can use taq --help
to list the available tasks in a given context
Taqueria plugins extend the functionality of Taqueria by adding additional tasks that can be run on a project. Currently available plugins are:
name | pluginName | description |
---|---|---|
Archetype | @taqueria/plugin-archetype |
A compiler for the Archetype smart contract language |
Core | @taqueria/plugin-core |
Contains core utility tasks provided by Taqueria |
LIGO | @taqueria/plugin-ligo |
A compiler for the LIGO smart contract language |
SmartPy | @taqueria/plugin-smartpy |
A compiler for the SmartPy contract language |
Flextesa | @taqueria/plugin-flextesa |
A sandbox test network running Tezos Flextesa |
Taquito | @taqueria/plugin-taquito |
A front-end Tezos framework used to originate |
TS Generator | @taqueria/plugin-contract-types |
A type generator that produces TS types from Michelson code |
TzCompose | @taqueria/plugin-tzcompose |
A tool to facilitate complex deployments via pipelines |
Octez Client | @taqueria/plugin-octez-client |
Official Tezos client used to interact with the network |
Taqueria manages plugins by providing installation/uninstallation via the taq install <pluginName>
and taq uninstall <pluginName>
tasks. Plugins are installed on a per-project basis during which the NPM package is downloaded and installed on the project, and configuration is added in the ./.taq/config.json
file
There are two approaches to initializing a Taqueria project: initializing an empty project, or using a pre-configured project scaffold
- Initialize a new project:
taq init test-project
- Change directories:
cd test-project
- Install the LIGO plugin:
taq install @taqueria/plugin-ligo
- Continue steps 4-5 for each additional plugin you want to install
Note: You may instead run taq init test-project --workflow ligo
if you'd like to have the necessary plugins pre-installed for you on initialization
- Run the command
taq scaffold
- Change directories:
cd test-project
- Run the project setup command
npm run setup
- Start the app by running
npm run start
If you prefer to build the Taqueria binary and plugins locally, follow the steps detailed below
From the root of the Taqueria directory, run the build-all script:
pnpm run build-all
Running the unit tests requires deno is installed on your system. Installation instructions can be found here
If you are running from built sources, start with pnpm run build-all
- The tests should be run from the taqueria root folder by calling the test run script with the workspace specified:
pnpm run test:{unit|integration|e2e} -w tests
- the package.json file in the /tests directory lists various combinations of tests that can be invoked from the command line.