Web3: Truffle VS Hardhat VS Embark VS Brownie
Tags: web3, beginners, 100daysofcode, blockchain
Published: 2021-12-23 19:00:47

A *development framework* is a platform which makes it easy to build applications. Just like every technology needs a development framework, so do DApps. 

**Truffle**, **Hardhat**, **Embark**, **Brownie** are a few popular frameworks used by blockchain engineers.

> Well now how does one select a framework from these? Which one is the best framework to get started with? 

To answer these questions let us try understanding what all these frameworks have to offer and how they are different from each other. The following excerpts are referred from the docs of these development environments.

**Truffle** :


![Truffle](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0ejoluacb2it0o368x2.PNG)

1. Truffle with 12k Github stars has a built-in smart contract compilation, linking, deployment and binary management(managing binary files).
2. Contract testing is automated which makes it hassle free.
3. The framework supports scripting and is scalable.
4. It also provides Network management for deploying to any number of public & private networks.
5. It has the features of Package management with EthPM & NPM, using the ERC190 standard.
6. Interactive console for direct contract communication.
7. Integration becomes easy because of configuration support in the build pipeline.
8. It includes an external script runner that executes scripts within a Truffle environment.


**Hardhat** :



![Hardhat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pfx2hzn5eub8ne7biv2.png)


1. Hardhat with 2.1k stars on Github has the same features of building, compiling, and testing smart contracts as that of Truffle.
2. It focuses on Solidity debugging, featuring stack traces, console.log() and explicit error messages when transactions fail.
3. It's designed around the concepts of tasks and plugins. Every time you're running Hardhat from the CLI you're running a task.
4. Workflows and plugins are customizable in Hardhat.

**Embark**


![Embark](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/679j2o0mvv8llumzlnin.png)

1. Deploying and redeploying of contracts is taken care while you're making changes to your code in Embark.
2. Client side application can be built within Embark itself. 
3. Test your applications and Smart Contracts through Web3 in JavaScript.
4. Embark integrates with decentralized storages like IPFS and helps you distributing your app in the network.
5. Peer-to-peer messaging is possible via communication protocols like Whisper.
6. Cockpit is a companion application which helps in developing and debugging decentralized applications.
 
**Brownie**

1. For Python lovers Brownie which has 1.3k stars on github is a great option of development and testing framework. 
2. It supports Solidity and Vyper.
3. Contract testing is done via pytest.
4. The debugging tools are similar to that of truffle but with python-style tracebacks and custom error strings.
5. It also has a Built-in console for quick project interaction and support for ethPM packages

Everyday there are newer developments environments coming up and the above are just the ones frequently used by the community. 

> This is my first blog under my 100days of Web3 journey.

For more tweets on Web3, Dev Advocacy and API supremacy you can follow me on **[Twitter](https://twitter.com/BhosalePratim)**