Metadata-Version: 2.1
Name: buildgrid
Version: 0.1.4
Summary: A remote execution service
License: Apache License, Version 2.0
Project-URL: Homepage, https://buildgrid.build
Project-URL: Documentation, https://buildgrid.build
Project-URL: Repository, https://gitlab.com/BuildGrid/buildgrid
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: boto3
Requires-Dist: botocore
Requires-Dist: dnspython
Requires-Dist: grpcio-reflection >=1.62.0
Requires-Dist: grpcio >=1.62.0
Requires-Dist: importlib-resources
Requires-Dist: janus >=0.6.2
Requires-Dist: jinja2
Requires-Dist: protobuf
Requires-Dist: alembic
Requires-Dist: Click
Requires-Dist: SQLAlchemy[mypy] <2.0,>=1.4.24
Requires-Dist: pydantic >2.0
Requires-Dist: PyYAML >=6.0.1
Requires-Dist: jsonschema >=3.0.0
Requires-Dist: lark-parser
Requires-Dist: pycurl
Requires-Dist: buildgrid-metering-client >=0.0.4
Requires-Dist: mmh3
Provides-Extra: all
Requires-Dist: buildgrid[auth,browser,database,dev,docs,mypy,redis,tests] ; extra == 'all'
Provides-Extra: auth
Requires-Dist: cryptography ; extra == 'auth'
Requires-Dist: PyJWT ; extra == 'auth'
Requires-Dist: requests ; extra == 'auth'
Provides-Extra: browser
Requires-Dist: aiofiles ; extra == 'browser'
Requires-Dist: aiohttp ; extra == 'browser'
Requires-Dist: aiohttp-middlewares ; extra == 'browser'
Provides-Extra: database
Requires-Dist: psycopg2-binary ; extra == 'database'
Provides-Extra: dev
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: pycodestyle ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-forked ; extra == 'dev'
Requires-Dist: pytest-pycodestyle ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'
Requires-Dist: pip-tools ; extra == 'dev'
Requires-Dist: memray ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: Sphinx ; extra == 'docs'
Requires-Dist: sphinx-click ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-apidoc ; extra == 'docs'
Provides-Extra: mypy
Requires-Dist: mypy ; extra == 'mypy'
Requires-Dist: grpc-stubs >=1.53 ; extra == 'mypy'
Requires-Dist: boto3-stubs ; extra == 'mypy'
Requires-Dist: mypy-boto3-s3 ; extra == 'mypy'
Requires-Dist: sqlalchemy2-stubs <=0.0.2a22 ; extra == 'mypy'
Requires-Dist: types-aiofiles ; extra == 'mypy'
Requires-Dist: types-cachetools ; extra == 'mypy'
Requires-Dist: types-docutils ; extra == 'mypy'
Requires-Dist: types-jsonschema ; extra == 'mypy'
Requires-Dist: types-protobuf ; extra == 'mypy'
Requires-Dist: types-psycopg2 ; extra == 'mypy'
Requires-Dist: types-pycurl ; extra == 'mypy'
Requires-Dist: types-Pygments ; extra == 'mypy'
Requires-Dist: types-pyOpenSSL ; extra == 'mypy'
Requires-Dist: types-python-dateutil ; extra == 'mypy'
Requires-Dist: types-redis ; extra == 'mypy'
Requires-Dist: types-requests ; extra == 'mypy'
Requires-Dist: types-setuptools ; extra == 'mypy'
Requires-Dist: types-urllib3 ; extra == 'mypy'
Provides-Extra: redis
Requires-Dist: fakeredis >=2.10.1 ; extra == 'redis'
Requires-Dist: redis >=4.5.1 ; extra == 'redis'
Requires-Dist: hiredis ; extra == 'redis'
Provides-Extra: tests
Requires-Dist: coverage ; extra == 'tests'
Requires-Dist: cryptography >=38.0.0 ; extra == 'tests'
Requires-Dist: flaky ; extra == 'tests'
Requires-Dist: flask ; extra == 'tests'
Requires-Dist: flask-cors ; extra == 'tests'
Requires-Dist: moto <4.1.12 ; extra == 'tests'
Requires-Dist: psutil ; extra == 'tests'
Requires-Dist: pycodestyle ; extra == 'tests'
Requires-Dist: pyopenssl >=22.0.0 ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: pytest-aiohttp ; extra == 'tests'
Requires-Dist: pytest-asyncio ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest-forked ; extra == 'tests'
Requires-Dist: pytest-pycodestyle ; extra == 'tests'
Requires-Dist: pytest-xdist ; extra == 'tests'
Requires-Dist: fakeredis >=2.10.1 ; extra == 'tests'
Requires-Dist: redis >=4.5.1 ; extra == 'tests'
Requires-Dist: testing.postgresql ; extra == 'tests'
Requires-Dist: psycopg2-binary ; extra == 'tests'

.. image:: https://gitlab.com/BuildGrid/buildgrid/badges/master/pipeline.svg
    :target: https://gitlab.com/BuildGrid/buildgrid/-/commits/master
    :alt: pipeline status

.. image:: https://gitlab.com/BuildGrid/buildgrid/badges/master/coverage.svg
    :target: https://gitlab.com/BuildGrid/buildgrid/-/commits/master
    :alt: coverage report

.. image:: https://gitlab.com/BuildGrid/buildgrid/-/badges/release.svg
    :target: https://gitlab.com/BuildGrid/buildgrid/-/releases
    :alt: coverage report


.. _about:

About
=====

.. _what-is-it:

What is BuildGrid?
------------------

BuildGrid is a Python remote execution service which implements Google's
`Remote Execution API`_ and the `Remote Workers API`_. The project's goal is to
be able to execute build jobs remotely on a grid of computers in order to
massively speed up build times. Workers on the grid should be able to run with
different environments. It works with clients such as `Bazel`_,
`BuildStream`_ and `RECC`_, and is designed to be able to work with any client
that conforms to the above API protocols.

BuildGrid is designed to work with any worker conforming to the `Remote Workers API`_
specification. Workers actually execute the jobs on the backend while BuildGrid does
the scheduling and storage. The `BuildBox`_ ecosystem provides a suite of workers and
sandboxing tools that work with the Workers API and can be used with BuildGrid.

.. _Remote Execution API: https://github.com/bazelbuild/remote-apis
.. _Remote Workers API: https://docs.google.com/document/d/1s_AzRRD2mdyktKUj2HWBn99rMg_3tcPvdjx3MPbFidU/edit#heading=h.1u2taqr2h940
.. _BuildStream: https://wiki.gnome.org/Projects/BuildStream
.. _Bazel: https://bazel.build
.. _RECC: https://gitlab.com/BuildGrid/buildbox/buildbox/-/tree/master/recc
.. _Trexe: https://gitlab.com/BuildGrid/buildbox/buildbox/-/tree/master/trexe
.. _BuildBox: https://buildgrid.gitlab.io/buildbox/buildbox-home/


.. _readme-getting-started:

Getting started
---------------

Please refer to the `documentation`_ for `installation`_ and `usage`_
instructions, plus guidelines for `contributing`_ to the project.

.. _contributing: https://buildgrid.build/developer/contributing.html
.. _documentation: https://buildgrid.build/
.. _installation: https://buildgrid.build/user/installation.html
.. _usage: https://buildgrid.build/user/using.html


.. _about-resources:

Resources
---------

- `Homepage`_
- `GitLab repository`_
- `Bug tracking`_
- `Mailing list`_
- `Slack channel`_ [`invite link`_]
- `FAQ`_

.. _Homepage: https://buildgrid.build/
.. _GitLab repository: https://gitlab.com/BuildGrid/buildgrid
.. _Bug tracking: https://gitlab.com/BuildGrid/buildgrid/boards
.. _Mailing list: https://lists.buildgrid.build/cgi-bin/mailman/listinfo/buildgrid
.. _Slack channel: https://buildteamworld.slack.com/messages/CC9MKC203
.. _invite link: https://bit.ly/2SG1amT
.. _FAQ: https://buildgrid.build/user/faq.html
