BigFunctions is an open-source Python framework, released under the MIT licence, for building a governed catalog of BigQuery functions — packaged with a community library of more than 150 functions that can be called directly or redeployed — and it is aimed at data engineers, analysts, and teams working inside Google BigQuery.
What it is
BigFunctions is a framework for building a governed catalog of BigQuery functions to supercharge BigQuery. Alongside the framework, the project ships more than 150 functions built by the community, which can either be called directly without any installation or redeployed into a catalog of your own. The repository is written in Python, carries the MIT licence, and sits in the data and analytics space under data warehousing and processing; the project page lives at unytics.io/bigfunctions, and the repository holds 759 stars, 70 forks, and 31 open issues.
The concrete problem it addresses is the gap between what SQL can express natively in BigQuery and the advanced work data teams need to do. BigFunctions allows any advanced data task — load, transform, or take actions — to be performed by running SQL commands in BigQuery, rather than by maintaining logic outside the warehouse. Every function is described by a YAML file in the bigfunctions folder, so the catalog is explicit, versioned, and deployable instead of being an informal collection of definitions scattered across projects. All BigFunctions represented by a YAML file in that folder are deployed in public datasets, which means the same definitions that document a function are also the artefact that puts it into service.
Key capabilities
- A governed catalog of BigQuery functions, defined one file per function as YAML, for example
bigfunctions/my_bigfunction.yaml.
- More than 150 community-built functions, callable directly with no install from public datasets.
- Public invocation from your own GCP project without deployment, for example
select bigfunctions.eu.faker("name", "it_IT").
- Deployment of any individual function into your own GCP project with the
bigfun command: bigfun deploy my_bigfunction.
- Support for advanced data tasks — load, transform, and take actions — performed by running SQL commands in BigQuery.
- Redeployment of community functions into your own catalog rather than a shared one.
- Community contribution paths: a
new-bigfunction issue template, general issue templates, pull requests against the contributing instructions, and a project Slack.
Who uses it and how
- BigQuery users on a GCP project who want advanced capability immediately call the public datasets directly, with no install step and no deployment.
- Teams that need control over ownership and governance deploy individual functions into their own GCP project, so the function definitions live in their catalog.
- Data engineers and analysts who want load, transform, and action steps expressed as SQL in BigQuery rather than as separate processing outside the warehouse.
- Contributors add functions upstream through the dedicated new-function issue template and pull requests, extending the shared public set for everyone else.
Getting started
The README offers two paths: call a public function straight from your GCP project, for example select bigfunctions.eu.faker("name", "it_IT"), or deploy a function defined in bigfunctions/my_bigfunction.yaml into your own project by running bigfun deploy my_bigfunction.
How it compares
The facts provided name no comparable or competing tools, and no list of paid products that this project replaces, so BigFunctions stands alone in this registry as the only entry of its kind. It should be judged on its own terms: an MIT-licensed, self-deployed catalog framework for BigQuery functions rather than a hosted service or a closed vendor product.
When to use it — and when not to
Choose it when your data platform is Google BigQuery and you want reusable, governed functions deployed into your own GCP project, or when you want to reach for community functions without deploying anything at all. A team self-hosting its catalog takes on the work of writing and maintaining the YAML definitions and of deploying them into a GCP project, and there is no hosted or managed option described here. It is not a fit for warehouses other than BigQuery, and anyone needing extensive documentation up front should note that the README excerpt is brief, that the deeper guidance sits on the project site, and that the repository currently carries 31 open issues.