Setting up an Ethereum Development Environment
- General
Setting up an Ethereum Development Environment
Here I am going to list all the developer tools and framework which are going to used for ethereum development.
List of Developer Tools are as follows:-
Developing Smart Contracts
Smart Contract Languages
- Solidity — Ethereum smart contracting language
- Bamboo — A morphing smart contract language
- Vyper — New experimental pythonic programming language
- LLL — Low-level Lisp-like Language
- Flint — New language under development with security features including asset types, state transition, and safe integers
Frameworks
- Truffle — Most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and Drizzle.
- Embark — Framework for DApp development
- Waffle — Framework for advanced smart contract development and testing, small, flexible, fast (based on ethers.js)
- Dapp — Framework for DApp development, successor to DApple
- Populus — The Ethereum development framework with the most cute animal pictures
- Etherlime — ethers.js based framework for Dapp deployment
- Parasol — Agile smart contract development environment with testing, INFURA deployment, automatic contract documentation and more. It features a a flexible and unopinionated design with unlimited customizability
- 0xcert — JavaScript framework for building decentralized applications
Integrated Developer Environments
- Remix — Web IDE with built in static analysis, test blockchain VM.
- Superblocks Lab — Web IDE. Built in browser blochain VM, Metamask integration (one click deployments to Testnet/Mainnet), transaction logger and live code your WebApp among many other features.
- Atom — Atom editor with Atom Solidity Linter, Etheratom, autocomplete-solidity, and language-solidity packages
- Pragma — Very simple web IDE for solidity, and auto-generated interfaces for smart contracts.
- Vim solidity — Vim syntax file for solidity
- Visual Studio Code — Visual Studio Code extension that adds support for Solidity
- Intellij Solidity Plugin — Open-source plug-in for JetBrains IntelliJ Idea IDE (free/commercial) with syntax highlighting, formatting, code completion etc.
- YAKINDU Solidity Tools — Eclipse based IDE. Features context sensitive code completion and help, code navigation, syntax coloring, build in compiler, quick fixes and templates.
- Eth Fiddle — IDE developed by The Loom Network that allows you to write, compile and debug your smart contract. Easy to share and find code snippets.
Test blockchain networks
- Ganache — App for test Ethereum blockchain with visual UI and logs
- Kaleido — Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
- Pantheon Private Network — Run a private network of Pantheon nodes in a Docker container ** Orion — Component for performing private transactions by PegaSys ** Artemis — Java implementation of the Ethereum 2.0 Beacon Chain by PegaSys
- Cliquebait — Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
- Local Raiden — Run a local Raiden network in docker containers for demo and testing purposes
- Private networks deployment scripts — Out-of-the-box deployment scripts for private PoA networks
- Local Ethereum Network — Out-of-the-box deployment scripts for private PoW networks
- Ethereum on Azure — Deployment and governance of consortium Ethereum PoA networks
- getho — DApp development platform including PoA private blockchain and Smart Contract testing tool.
- Ethereum on Google Cloud — Build Ethereum network based on Proof of Work
Test Ether faucets
- Georli Faucet
- Sepolia
Communicating with Ethereum.
Frontend Ethereum APIs
- Web3.js — Javascript Web3
- Eth.js — Javascript Web3 alternative
- Ethers.js — Javascript Web3 alternative, useful utilities and wallet features
- Web3Wrapper — Typescript Web3 alternative
- Ethereumjs — A collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx
- flex-contract and flex-ether Modern, zero-configuration, high-level libraries for interacting with smart contracts and making transactions.
- ez-ens Simple, zero-configuration Ethereum Name Service address resolver.
- web3x — A TypeScript port of web3.js. Benefits includes tiny builds and full type safety, including when interacting with contracts.
- Drizzle — Redux library to connect a frontend to a blockchain
- Tasit SDK — A JavaScript SDK for making native mobile Ethereum dapps using React Native
- Subproviders — Several useful subproviders to use in conjunction with Web3-provider-engine (including a LedgerSubprovider for adding Ledger hardware wallet support to your dApp)
- web3-react — React framework for building single-page Ethereum dApps
- Vortex — A Dapp-ready Redux Store. Smart and Dynamic background data refresh thanks to WebSockets. Works with Truffle and Embark.
- Strictly Typed — Javascript alternatives
- elm-ethereum
- purescript-web3
Backend Ethereum APIs
- Web3.py — Python Web3
- Web3.php — PHP Web3
- Ethereum-php — PHP Web3
- Web3j — Java Web3
- Nethereum — .Net Web3
- Ethereum.rb — Ruby Web3
- Web3.hs — Haskell Web3
- KEthereum — Kotlin Web3
- Pyethereum — The Python core library of the Ethereum project
- Eventeum — A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri
- Ethereumex — Elixir JSON-RPC client for the Ethereum blockchain
- EthContract — A set of helper methods to help query ETH smart contracts in Elixir
These are the mostly used developer tools and for further more you can check out this link