bacalhau

command module
v0.3.22 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

README

Bacalhau logo

The Filecoin Distributed Computation Framework⚡️
Compute Over Data(CoD)


total download Bacalhau contributors Bacalhau website follow on Twitter

Bacalhau is a platform for fast, cost efficient, and secure computation by running jobs where the data is generated and stored. With Bacalhau you can streamline your exisiting workflows without the need of extensive rewriting by running arbitrary Docker containers and WebAssembly (wasm) images as tasks.

Table of Contents

Why Bacalhau?

  • Fast job processing: Jobs in Bacalhau are processed where the data was created and all jobs are parallel by default.
  • 💰 Low cost: Reduce (or eliminate) ingress/egress costs since jobs are processed closer to the source. Take advantage of as well idle computation capabilities at the edge.
  • 🔒 Secure: Data scrubbing and security can before migration to reduce the chance of leaking private information, and with a far more granular, code-based permission model.
  • 🚛 Large-scale data: Bacalhau operates on a network of open compute resources made available to serve any data processing workload. With Bacalhau, you can batch process petabytes (quadrillion bytes) of data.

Getting started - Bacalhau in 1 minute

Go to the folder directory that you want to store your job results

Install the bacalhau client

curl -sL https://get.bacalhau.org/install.sh | bash

Submit a "Hello World" job

bacalhau docker run ubuntu echo Hello World

Download your result

bacalhau get 63d08ff0..... # make sure to use the right job id from the docker run command

For a more detailed tutorial, check out our Getting Started tutorial.

Learn more

Documentation

📚 Read the Bacalhau docs guide here! 📚

The Bacalhau docs is the best starting point as it contains all the information to ensure that everyone who uses Bacalhau is doing so efficiently.

Developers guide

Running Bacalhau locally

Developers can spin up bacalhau and run a local demo using the devstack command.

Please see docs/running_locally.md for instructions. Also, see docs/debugging_locally.md for some useful tricks for debugging.

Notes for Dev contributors

Bacalhau's CI pipeline performs a variety of linting and formatting checks on new pull requests. To have these checks run locally when you make a new commit, you can use the precommit hook in ./githooks:

make install-pre-commit

# check if pre-commit works
make precommit

If you want to run the linter manually:

curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/local/go/bin
golangci-lint --version
make lint

The config lives in .golangci.yml

Issues, feature requests, and questions

We are excited to hear your feedback!

  • For issues and feature requests, please open a GitHub issue.
  • For questions, give feedback or answer questions that will help other user product please use GitHub Discussions.
  • To engage with other members in the community, join us in our slack community #bacalhau channel 🙋

Ways to contribute

All manner of contributions are more than welcome!

We have highlighted the different ways you can contribute in our contributing guide. You can be part of community discussions, development, and more.

Current state of Bacalhau 📈

Building never stops 🛠️. Bacalhau is a work in progress!. Learn more about our future plans in this roadmap document

License

Apache-2.0

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
dashboard
api
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
ops
pkg
eventhandler/mock_eventhandler
Package mock_system is a generated GoMock package.
Package mock_system is a generated GoMock package.
job
publisher/combo
Package combo provides different Publisher implementations that delegate the work to real implementations, such as calling another publisher if one fails.
Package combo provides different Publisher implementations that delegate the work to real implementations, such as calling another publisher if one fails.
storage/inline
The `inline` package provides a storage abstraction that stores data for use by Bacalhau jobs within the storage spec itself, without needing any connection to an external storage provider.
The `inline` package provides a storage abstraction that stores data for use by Bacalhau jobs within the storage spec itself, without needing any connection to an external storage provider.
test/scenario
Package scenario provides a high-level testing framework for running Bacalhau jobs in different configurations and making assertions against the results.
Package scenario provides a high-level testing framework for running Bacalhau jobs in different configurations and making assertions against the results.
test/utils
Package testutils collects common test utilities.
Package testutils collects common test utilities.
version
Package version provides information about what Bacalhau was built from.
Package version provides information about what Bacalhau was built from.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL