Clients and Implementations

Clients directly (node as part of the network) or indirectly (remote connection to a node) connect to the Ethereum network and are used by browsers and wallets to allow the user to interact with it.

Clients 

Geth  – Ethereum client developed in Go
OpenEthereum  – Rust client
ethereumJS  – Javascript client using ethereumjs-vm
Ethereumj  – Java client by the Ethereum Foundation
Besu (Pantheon)  – Java client by PegaSys
Pyethapp  – Python client using pyethereum
Trinity  – Python client using py-evm
Aleth  – C++ client
Nethermind  – .NET client and p2p data marketplace
Mustekala  – Ethereum light client project of Metamask
Ethereum Blockchain Light Clients  – a primer
Nimbus  – Ethereum 2.0 sharding client – a public testnet
Prysm  – public testnet release for Ethereum 2.0 phase 0
Lighthouse  – run your own Ethereum 2.0 testnet beacon node and/or validator client

APIs – Frontend

Web3.js  – Javascript Web3
Eth.js  – Javascript Web3 alternative
Ethers.js  – Javascript (and TypeScript) Web3 alternative, useful utilities and wallet features
Web3Wrapper  – Typescript Web3 alternative
Ethereumjs  – collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx
Web3Wrapper  – Typescript Web3 alternative
Nethereum  – cross-platform Ethereum development framework
Drizzle  – Redux library to connect a frontend to a blockchain
Web3 React  – drop-in solution for building Ethereum DApps in React
Vortex  – DApp redux store that handles transactions, smart contracts, events, accounts, method calls, web3 status, IPFS fetching, etc
Tasit SDK  – JavaScript SDK for making native mobile Ethereum dapps using React Native
EthQL –  GraphQL interface to Ethereum

APIs – Backend

Infura  – the Ethereum API as a service
Cloudflare  – simplify access to both the Ethereum network and the InterPlanetary File System (IPFS)
Nodesmith  – API for Ethereum’s JSON RPC
Web3j  – Java Web3
Nethereum  – .Net Web3
Web3.py  – Python Web3
pyethereum  – Python core library of the Ethereum project
Machinomy  – Node.js library for micropayments in Ether and ERC20 tokens over HTTP
Eventeum  – a bridge between Ethereum smart contract events and backend microservices, written in Java
Ewasm Rust API  – Ewasm API for Rust

Storage 

IPFS  – InterPlanetary File System is a decentralized storage and file referencing system for Ethereum
Swarm  – a distributed storage platform and content distribution service for the Ethereum web3 stack
OrbitDB  – a decentralized peer to peer database on top of IPFS

Resources 

Ethereum Developer Tools List  – a guide to available tools, components, patterns, and platforms for developing applications on Ethereum
Awesome Solidity List  – a curated list of awesome Solidity resources, libraries, tools and more
Awesome Vyper  – a curated list of resources for Vyper