Need advice about which tool to choose?Ask the StackShare community!

Bazel

301
566
+ 1
133
Packer

582
561
+ 1
42
Add tool

Bazel vs Packer: What are the differences?

Introduction:

1. Performance: Bazel is focused on providing fast and incremental builds by only rebuilding what is necessary, while Packer is mainly used for creating machine images for multiple platforms, which typically does not require the same level of performance optimization for builds.

2. Use case: Bazel is primarily used for building and testing software applications across different platforms, whereas Packer is tailored for creating identical machine images for multiple platforms and environments, such as virtual machines, containers, and cloud instances.

3. Language support: Bazel supports multiple programming languages, including Java, C++, and Python, while Packer is more focused on configuration languages like JSON and HCL (HashiCorp Configuration Language) for defining machine images and infrastructure setups.

4. Dependency management: Bazel has built-in support for managing dependencies and ensuring reproducible builds, while Packer relies on external tools and plugins for managing dependencies and integrating with other systems.

5. Workflow integration: Bazel is designed to integrate seamlessly with continuous integration/continuous deployment (CI/CD) pipelines for automating software delivery processes, while Packer is commonly used as part of infrastructure as code (IaC) workflows to automate the creation of machine images within cloud environments.

6. Community and support: Bazel is backed by Google and has a large community of contributors, while Packer is supported by HashiCorp and benefits from the company's expertise in infrastructure automation tools, leading to active development and support for the tool.

In Summary, Bazel and Packer differ in performance optimization, use cases, language support, dependency management, workflow integration, and community support.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Bazel
Pros of Packer
  • 28
    Fast
  • 20
    Deterministic incremental builds
  • 17
    Correct
  • 16
    Multi-language
  • 14
    Enforces declared inputs/outputs
  • 10
    High-level build language
  • 9
    Scalable
  • 5
    Multi-platform support
  • 5
    Sandboxing
  • 4
    Dependency management
  • 2
    Windows Support
  • 2
    Flexible
  • 1
    Android Studio integration
  • 27
    Cross platform builds
  • 9
    Vm creation automation
  • 4
    Bake in security
  • 1
    Good documentation
  • 1
    Easy to use

Sign up to add or upvote prosMake informed product decisions

Cons of Bazel
Cons of Packer
  • 3
    No Windows Support
  • 2
    Bad IntelliJ support
  • 1
    Poor windows support for some languages
  • 1
    Constant breaking changes
  • 1
    Learning Curve
  • 1
    Lack of Documentation
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is Bazel?

    Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment.

    What is Packer?

    Packer automates the creation of any type of machine image. It embraces modern configuration management by encouraging you to use automated scripts to install and configure the software within your Packer-made images.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Bazel?
    What companies use Packer?
    See which teams inside your own company are using Bazel or Packer.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Bazel?
    What tools integrate with Packer?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Mar 24 2021 at 12:57PM

    Pinterest

    GitJenkinsKafka+7
    3
    2145
    GitJenkinsGroovy+4
    4
    2655
    What are some alternatives to Bazel and Packer?
    Pants
    Pants is a build system for Java, Scala and Python. It works particularly well for a source code repository that contains many distinct projects.
    Webpack
    A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders" modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
    Ansible
    Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use.
    Buck
    Buck encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages on many platforms.
    CMake
    It is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of the user's choice.
    See all alternatives