Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikeroyal/Blockchain-Guide
Blockchain Guide
https://github.com/mikeroyal/Blockchain-Guide
List: Blockchain-Guide
awesome awesome-blockchain awesome-list bitcoin bitcoin-api bitcoin-payment bitcoin-wallet blockchain blockchain-explorer blockchain-network blockchain-technology bluewallet cryptography decentralization decentralized lightning-network lightningnetwork p2p podcasting20 statoshi
Last synced: 16 days ago
JSON representation
Blockchain Guide
- Host: GitHub
- URL: https://github.com/mikeroyal/Blockchain-Guide
- Owner: mikeroyal
- Created: 2020-10-05T20:18:34.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-28T00:40:45.000Z (over 2 years ago)
- Last Synced: 2024-05-23T09:18:33.621Z (7 months ago)
- Topics: awesome, awesome-blockchain, awesome-list, bitcoin, bitcoin-api, bitcoin-payment, bitcoin-wallet, blockchain, blockchain-explorer, blockchain-network, blockchain-technology, bluewallet, cryptography, decentralization, decentralized, lightning-network, lightningnetwork, p2p, podcasting20, statoshi
- Language: C++
- Homepage:
- Size: 180 KB
- Stars: 34
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- ultimate-awesome - Blockchain-Guide - Blockchain Guide. (Other Lists / Monkey C Lists)
README
Blockchain Guide#### A guide covering Blockchain including the applications and tools that will make you a better and more efficient Blockchain developer.
**Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).**
# Table of Contents
1. [Blockchain Learning Resources](https://github.com/mikeroyal/Blockchain-Guide#blockchain-learning-resources)
- [Bitcoin/Lightning Network Resources](https://github.com/mikeroyal/Blockchain-Guide#bitcoinlightning-network-resources)
- [Courses](https://github.com/mikeroyal/Blockchain-Guide#courses)
- [Books](https://github.com/mikeroyal/Blockchain-Guide#books)
2. [Blockchain Tools,Libraries and Frameworks](https://github.com/mikeroyal/Blockchain-Guide#blockchain-tools-libraries-and-frameworks)
- [Blockchain Distribution](https://github.com/mikeroyal/Blockchain-Guide#blockchain-distribution)
- [Lightning Network](https://github.com/mikeroyal/Blockchain-Guide#lightning-network)
- [Platforms](https://github.com/mikeroyal/Blockchain-Guide#platforms)
- [Utilities](https://github.com/mikeroyal/Blockchain-Guide#utilities)
- [Blockchain Explorers](https://github.com/mikeroyal/Blockchain-Guide#blockchain-explorers)
- [Blockchain Assets](https://github.com/mikeroyal/Blockchain-Guide#blockchain-assets)
- [Blockchain Playgrounds](https://github.com/mikeroyal/Blockchain-Guide#blockchain-playgrounds)
3. [C/C++ Development](https://github.com/mikeroyal/Blockchain-Guide#cc-development)
4. [Java Development](https://github.com/mikeroyal/Blockchain-Guide#java-development)
5. [Go Development](https://github.com/mikeroyal/Blockchain-Guide#go-development)
6. [Python Development](https://github.com/mikeroyal/Blockchain-Guide#python-development)
7. [JavaScript/TypeScript Development](https://github.com/mikeroyal/Blockchain-Guide#javascripttypescript-development)
8. [C# Development](https://github.com/mikeroyal/Blockchain-Guide#c-development)
9. [Ruby Development](https://github.com/mikeroyal/Blockchain-Guide#ruby-development)
10. [PHP Development](https://github.com/mikeroyal/Blockchain-Guide#php-development)
11. [Rust Development](https://github.com/mikeroyal/Blockchain-Guide#rust-development)
12. [Erlang Development](https://github.com/mikeroyal/Blockchain-Guide#erlang-development)
# Blockchain Learning Resources
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)[Blockchain](https://www.blockchain.com/) is a distributed database meaning that the storage devices used for the database are not all connected to a common processor. It maintains a growing decentralized digital list of ordered records, called blocks. Each block has a timestamp and a link to a previous block. By the system being decentralization it allows for complete transparency in all shared information.
## Bitcoin/Lightning Network Resources
- [@lopp / Bitcoin Developers](https://twitter.com/lopp/lists/bitcoin-developers) - Software developers who have experience working on Bitcoin implementations or applications.
- [@lopp / Lightning Developers](https://twitter.com/lopp/lists/lightning-developers) - Software developers with experience working on LN implementations / applications.
- [Practical Bitcoin Info - Google Sheets](https://docs.google.com/spreadsheets/d/1Z3Ofa4P8097VWV70Z_bMqIMladngvm-Ck24ot9TDNmw/).## Courses
- [IBM Blockchain Essentials](https://www.ibm.com/skills/topics/blockchain/)
- [Getting started with Blockchain Development](https://docs.microsoft.com/en-us/learn/paths/ethereum-blockchain-development/)
- [Blockchain Developer Nanodegree program | Udacity](https://www.udacity.com/course/blockchain-developer-nanodegree--nd1309)
- [Blockchain Programming: Build a blockchain and cryptocurrency from scratch using Python | Udemy](https://www.udemy.com/course/build-your-own-cryptocurrency-in-48-hours/)
- [Blockchain Courses by Coursera](https://www.coursera.org/courses?query=blockchain)
- [Blockchain Courses by edX](https://www.edx.org/learn/blockchain)
- [Blockchain Certifications](https://www.blockchain-council.org/)
- [The Basics of Blockchain: A Beginner's Guide to Blockchain - Udemy](https://www.udemy.com/the-basics-of-blockchain/)
- [Bitcoin or How I learned to stop worrying and love Crypto - Udemy](https://www.udemy.com/bitcoin-or-how-i-learned-to-stop-worrying-and-love-crypto/#/)
- [The Complete Ethereum Course - Udemy](https://www.udemy.com/ethereum/)
- [Ethereum Developer: Build A Decentralised Blockchain App - Udemy](https://www.udemy.com/ethereum-developer/)
- [Bitcoin - Khan Academy Series](https://www.khanacademy.org/economics-finance-domain/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it)
- [Bitcoin and Cryptocurrency Technologies - Princeton University](https://www.coursera.org/learn/cryptocurrency)
- [Crypto Currencies, the Blockchain, and Smart Contracts - Standford ](https://crypto.stanford.edu/cs251/)
- [Introduction to Bitcoin and Decentralized Technology By Scott Driscoll - Pluralsight](https://www.pluralsight.com/courses/bitcoin-decentralized-technology)
- [EatTheBlocks Pro](http://pro.eattheblocks.com)
- [Ethereum DApps In Motion: build a decentralized exchange with Solidity & Truffle](https://www.manning.com/livevideo/ethereum-dapps-in-motion?a_aid=eattheblocks)
- [Blockchain for Finance Professionals - Experfy](https://www.experfy.com/training/courses/blockchain-for-finance-professionals)
- [Blockchain Technology Fundamentals - Experfy](https://www.experfy.com/training/courses/blockchain-technology-fundamentals)
- [Introduction to Digital Currencies - University of Nicosia](https://www.unic.ac.cy/blockchain/free-mooc/)## Books
- [Bitcoin and Cryptocurrency Technologies (Textbook)](https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf)
- [Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World](http://www.amazon.com/Blockchain-Revolution-Technology-Changing-Business/dp/1101980133)
- [Blockchain: Blueprint for a New Economy](http://www.amazon.com/Blockchain-Blueprint-Economy-Melanie-Swan/dp/1491920491)
- [Decentralized Applications: Harnessing Bitcoin's Blockchain Technology](http://www.amazon.com/Decentralized-Applications-Harnessing-Blockchain-Technology/dp/1491924543)
- [Mastering Bitcoin: Unlocking Digital Cryptocurrencies](http://www.amazon.com/Mastering-Bitcoin-Unlocking-Digital-Cryptocurrencies/dp/1449374042)
- [The Age of Cryptocurrency: How Bitcoin and Digital Money Are Challenging the Global Economic Order](http://www.amazon.com/The-Age-Cryptocurrency-Challenging-Economic/dp/1250065631)
-[A Gentle Introduction to Bitcoin Core Development](https://bitcointechtalk.com/a-gentle-introduction-to-bitcoin-core-development-fdc95eaee6b8)
- [Mastering Bitcoin](https://github.com/bitcoinbook/bitcoinbook)
- [Bitcoin Stackexchange](https://bitcoin.stackexchange.com)
- [Elliptic Curve Cryptography A Gentle Introduction](https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/).
- [Bitcoin Programming with BitcoinJS and Bitcoin Core CLI](https://github.com/bitcoin-studio/Bitcoin-Programming-with-BitcoinJS).
- [Bitcoin Protocol Development Curriculum - Chaincode Labs](https://github.com/chaincodelabs/bitcoin-curriculum).
- [Lightning Network Protocol Development Curriculum - Chaincode Labs](https://github.com/chaincodelabs/lightning-curriculum).
- [Grokking Bitcoin](https://www.manning.com/books/grokking-bitcoin) - An in-depth technical book with rich illustrations.
- [Btcinformation.org / Developer Documentation](https://btcinformation.org/en/developer-documentation) - Useful resources, guides and reference material for developers.### E-Books
- [Mastering Bitcoin 2nd Edition - Programming the Open Blockchain](https://github.com/bitcoinbook/bitcoinbook)
- [Mastering Ethereum, by Andreas M. Antonopoulos, Gavin Wood](https://github.com/ethereumbook/ethereumbook)
- [IOTA Guide and FAQ by Matthew Winston Johnson](https://matthewwinstonjohnson.gitbooks.io/iota-guide-and-faq/content/)# Blockchain Tools, Libraries and Frameworks
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)[Hyperledger](https://www.hyperledger.org) is an open source community focused on developing a suite of stable frameworks, tools and libraries for enterprise-grade blockchain deployments. It serves as a neutral home for various distributed ledger frameworks including Hyperledger Fabric, Sawtooth, Indy, as well as tools like Hyperledger Caliper and libraries like Hyperledger Ursa.
[Hyperledger Caliper](https://www.hyperledger.org/use/caliper) is a blockchain benchmark tool, it allows users to measure the performance of a blockchain implementation with a set of predefined use cases. Hyperledger Caliper will produce reports containing a number of performance indicators to serve as a reference when using the following blockchain solutions: Hyperledger Besu, Hyperledger Burrow, Ethereum, Hyperledger Fabric, FISCO BCOS, Hyperledger Iroha and Hyperledger Sawtooth.
[Hyperledger Ursa](https://www.hyperledger.org/use/ursa) is a shared cryptographic library, it enables implementations to avoid duplicating other cryptographic work and hopefully increase security in the process. The library is an opt-in repository (for Hyperledger and non Hyperledger projects) to place and use crypto. Hyperledger Ursa consists of sub-projects, which are cohesive implementations of cryptographic code or interfaces to cryptographic code.
[Hyperledger Fabric](https://wiki.hyperledger.org/display/fabric) is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy.
[Geth](https://geth.ethereum.org/) is an implementation of an [Ethereum](https://ethereum.org/en/) node in the Go programming language.
[Solidity](https://solidity.readthedocs.io/) is a purposefully slimmed down, loosely-typed language with a syntax very similar to ECMAScript (Javascript) that is used for the creation of smart contracts on the Ethereum blockchain.
[GanacheCLI (NodeJS package)](https://www.trufflesuite.com/ganache) is a fast and customizable blockchain emulator. It simulates the Ethereum network on a single computer and allows you to make calls to the blockchain without any of the hassles of running a real Ethereum node.
[Truffle](https://trufflesuite.com/) is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier.
[Ethers.js](https://github.com/ethers-io/ethers.js/) is a library which was made for and is used by ethers.io. It is designed to make it easier to write client-side JavaScript based wallets, keeping the private key on the owner’s machine at all times.
[OpenEthereum](https://github.com/openethereum/openethereum) is a fast and feature-rich multi-network Ethereum client.
[Quorum](https://www.goquorum.com/) is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms.
[Diesel](https://diesel.rs/) is a safe, extensible ORM and Query Builder for [Rust](https://www.rust-lang.org/).
[BlockShell](https://github.com/daxeel/blockshell) is a minimal command line utility for learning Blockchain technical concepts like chaining & mining.
[Tendermint Core](https://tendermint.com/) is [Byzantine Fault Tolerant (BFT)](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance) middleware that takes a state transition machine written in any programming language and securely replicates it on many machines.
[inDEX](https://distribuyed.github.io/index/) is a comprehensive list of decentralized exchanges (DEX) of cryptocurrencies, tokens, derivatives and futures, and their protocols.
[Squeezer](https://squeezer.io/) is a platform that empowers new-entry blockchain developers to build serverless dApps easily.
## Blockchain Distribution
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
[The InterPlanetary File System (IPFS)](http://ipfs.io) is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.
[BigChainDB](https://www.bigchaindb.com ) is a decentralized database, at scale. It is complementary to decentralized processing platforms like Ethereum, and decentralized file systems like InterPlanetary File System (IPFS).
[ScoreX](https://github.com/ScorexProject/Scorex) is a modular blockchain framework.
## Lightning Network
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
[Lightning Network (LN)](https://lightning.network/) is a decentralized network using smart contract functionality in the blockchain to enable instant payments across a network of participants. It was created in response to scalability issues with Bitcoin, namely the speed and cost of Bitcoin transactions. Bitcoin's current theoretical maximum transactions per second (TPS) is 10, though in reality it is between 3 and 7.
[BOLT(Basis of Lightning Technology)](https://github.com/lightning/bolts) is a set of Lightning Network Specifications.
## Platforms
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
[Bitcoin](https://bitcoin.org) is the most popular cryptocurrency on Blockchain. [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
[Ethereum](https://www.ethereum.org) is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.[Ethereum classic](https://ethereumclassic.github.io/) is a continuation of the original Ethereum blockchain - the classic version preserving untampered history, hard forked after [DAO hack](http://www.coindesk.com/understanding-dao-hack-journalists/)
[Nxt](https://nxt.org) is an advanced blockchain platform which builds on and improves the basic functionality of pioneering cryptocurrencies such as Bitcoin. Cryptocurrency and financial systems are the first widely used applications of blockchain technology, but the blockchain and its associated technology can be used for so much more.
[Monero](https://getmonero.org) - secure, private, untraceable currency. It is open-source and freely available to all
[Azure blockchain](https://azure.microsoft.com/en-us/solutions/blockchain/) is a Blockchain as a Service from Microsoft.[IBM blockchain](http://www.ibm.com/blockchain/) is a blockchain network in a cloud environment.
[Waves](https://wavesplatform.com/) is a decentralized platform that allows any user to issue, transfer, swap and trade custom tokens directly on the blockchain.
[Monax](https://monax.io/) is an ecosystem application platform. It sells legally compliant smart contract-based SDKs to accelerate your time to market with sophisticated ecosystem applications.
[Emercoin](http://emercoin.com/) is a distributed blockchain services for business and personal use with its own decentralized DNS system.
[NEM](https://www.nem.io) is a P2P system that provides services like payments, messaging, asset making, and naming system.
[Ardor](https://www.ardorplatform.org/) - blockchain-as-a-service platform that will allow people to utilize the blockchain technology of Nxt through the use of child chains.
[Decent](https://decent.ch/) is an blockchain content distribution platform.
[Hyperledger](https://www.hyperledger.org/) is an open-source collaborative effort created to advance cross-industry blockchain technologies.
[Multichain](http://www.multichain.com/) is an open platform for blockchain applications.
[Stratis](https://stratisplatform.com/) is an end-to-end solutions for development, testing and deployment of native C# blockchain applications on the .Net framework. Claims to be enterprise ready.
[Counterparty](http://counterparty.io/) is a tool to create and trade any kind of digital token and run smart contracts on blockchain.
[Swarm](http://swarm-gateways.net/) is a serverless hosting incentivised peer-to-peer storage and content distribution. The primary objective is to provide a redundant store of Ethereum's public record, store and distribute DAPP code and data, as well as blockchain data.
[Chain](https://chain.com/) is an enterprise-grade blockchain infrastructure that enables organizations to build financial services from the ground up.
[Factom](https://www.factom.com) is a service that provides active solutions for compliance, identity, transparent assets, and securities for Enterprise, Government and Non-Profit systems.
[Expanse](http://www.expanse.tech/) is a fault tolerant cloud computer built on blockchain technology that facilitates censorship resistant applications.
[Corda](https://www.corda.net/) is an open-source blockchain project, designed for business, that allows you to build interoperable blockchain networks that transact in strict privacy.
[Veres One](https://veres.one/) is an identity management on blockchain.
[Vechain](https://www.vechain.com/) is a blockchain-as-a-service (BaaS).
[RSK](https://www.rsk.com/) is a smart contracts for Bitcoin.
[ArcBlock](https://www.arcblock.io/) is a platform that gives developers everything they need to create, deploy and manage apps, blockchains and decentralized identity for the decentralized web.
[Covalent](https://www.covalenthq.com/) is a unified API bringing visibility to billions of blockchain data points.
## Utilities
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
**Blockchain Diagram. Credit: [Hackernoon on Pinterest](https://www.pinterest.com/pin/442830575854162363/)**
[Nigiri](https://github.com/vulpemventures/nigiri/) is a CLI to quickly fire up a a Bitcoin regtest box along with Electrs and Esplora. Includes faucet and push commands.
[Nigiri in Travis](https://github.com/vulpemventures/nigiri-travis) -is a Travis template for adding Nigiri to your Travis (or Github Action) pipeline.[hal](https://github.com/stevenroose/hal) is a Bitcoin CLI swiss-army-knife (based on rust-bitcoin).
[BitKey](https://bitkey.io) is a live USB for airgapped transactions and Bitcoin swiss army knife.
[Pycoin](https://github.com/richardkiss/pycoin) is a Python-based Bitcoin and alt-coin utility library.
[bx](https://github.com/libbitcoin/libbitcoin-explorer) is a Bitcoin Command Line Tool.
[txwatcher](https://github.com/tsileo/txwatcher) is a little Python utility that lets you monitor Bitcoin addresses through Blockchain Websocket API and perform custom callbacks.
[hellobitcoin](https://github.com/prettymuchbryce/hellobitcoin) is a collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.
[HD Wallet Scanner](https://github.com/alexk111/HD-Wallet-Scanner) is a tol that finds all used addresses in your Bitcoin HD wallets bypassing gap limits.
[LibreSelery](https://github.com/protontypes/libreselery) is an automated Bitcoin distribution to your project contributors and dependencies integrated into GitHub Actions.
## Blockchain Explorers
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
[Blockchain Explorer](https://www.blockchain.com/explorer) is a piece of software that takes raw data from nodes on a Blockchain, then organizes them into human-readable data and displays them to users through an API.
- [Apirone.com](https://apirone.com/btc/)
- [Bitaps](https://bitaps.com/)
- [Bitinfocharts](https://bitinfocharts.com/bitcoin/explorer/)
- [Block Explorer](https://blockexplorer.com/)
- [Blockchain Size:](https://blockchain.info/charts/blocks-size)
- [Blockonomics](https://www.blockonomics.co/)
- [Blockstack Explorer](https://explorer.blockstack.org/)
- [Blocktrail](https://www.blocktrail.com/BTC)
- [BTC Chain](https://btc.com/)
- [Coin Payments](https://explorer.coinpayments.net/)
- [Coin Prism](https://www.coinprism.info/)
- [CoinGecko](https://www.coingecko.com/en/price_charts/bitcoin/usd/24_hours)
- [EtherChain](https://etherchain.org/)
- [Ethereum Network Stats](https://stats.ethdev.com/)
- [Etherscan](https://etherscan.io/)
- [Ethplorer](https://ethplorer.io/)
- [Etherchain](https://etherchain.org/)
- [Trivial](https://trivial.co/)
- [Insight](https://insight.bitpay.com/)
- [Size of the Network](https://getaddr.bitnodes.io/)
- [Smartbit](https://www.smartbit.com.au/)
- [SoChain](https://chain.so/btc)
- [Tradeblock](https://tradeblock.com/markets)
- [Wallet Explorer](https://www.walletexplorer.com/)
- [WebBtc](https://webbtc.com/)
- [Exchangify](https://exchangify.io/)## Blockchain Assets
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
[Blockchain assets](https://www.blockchain-council.org/blockchain/asset-tokenization/) are a type of digital asset or cryptocurrency. It represents stakes in a particular project or company. Others are intended to be currencies, like Bitcoin, and do not represent a stake in a particular organization.
- [EverLedger](https://www.everledger.io/)
- [OpenPublish](https://github.com/blockai-unofficial/openpublish)
- [Open Assets Protocol](https://github.com/OpenAssets/open-assets-protocol)## Blockchain Playgrounds
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
**Blockchain Playground** is designed to provide a simple playground to help learn the basic concepts of blockchain.
[Bitcoin IDE](https://github.com/siminchen/bitcoinIDE) is a Bitcoin Script for dummies.
[Blockchain-demo](https://github.com/anders94/blockchain-demo/) is a web-based demonstration of blockchain concepts.
[Bitcoin Script Debugger](https://github.com/liuhongchao/bitcoin4s) is a visualize Bitcoin script execution for real transactions.
[Bitauth IDE](https://ide.bitauth.com/) is an interactive development environment for Bitcoin contracts.
[WebBTC](http://dumps.webbtc.com/bitcoin/) is a postgres database dumps of the bitcoin-ruby-blockchain database generated by webbtc.com.
[BitcoinDatabaseGenerator](https://github.com/ladimolnar/BitcoinDatabaseGenerator) is a high performance data transfer tool that can be used to copy data from Bitcoin Core blockchain files to a SQL Server database.
[Blockparser+SQL](https://github.com/mcdee/blockparser) is fast, quick and dirty bitcoin blockchain parser.
[BitcoinABE](https://github.com/bitcoin-abe/bitcoin-abe) is a block browser for Bitcoin and similar currencies.
[NBitcoin.Indexer](https://github.com/MetacoSA/NBitcoin.Indexer) is a scalable and fault-tolerant block chain indexer for Azure cloud platform.
[Blockchain2Graph](https://github.com/straumat/blockchain2graph) is a Graph Database Builder.
[Chaingraph](https://github.com/bitauth/chaingraph/) is a multi-node blockchain indexer and GraphQL API.
[btcd](https://github.com/btcsuite/btcd/) is a Go-based full node since 2013.
[Bitcoin-ruby-node](https://github.com/mhanne/bitcoin-ruby-node) is a bitcoin node based on bitcoin-ruby-blockchain.
[Fullnode](https://github.com/moneybutton/yours-bitcoin) is a Javascript implementation of bitcoin.
[Bitcore Node](https://github.com/bitpay/bitcore-node) is a bitcoind linked to node.js by BitPay.
[Bitcore](https://github.com/bitpay/bitcore) is formerly just a Nodejs library, now a full node.
# C/C++ Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [Libbitcoin](https://libbitcoin.org/)
- [libwally-core](https://github.com/ElementsProject/libwally-core)
- [secp256k1](https://github.com/bitcoin-core/secp256k1)## C/C++ Learning Resources
[C++](https://www.cplusplus.com/doc/tutorial/) is a cross-platform language that can be used to build high-performance applications developed by Bjarne Stroustrup, as an extension to the C language.
[C](https://www.iso.org/standard/74528.html) is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It supports structured programming, lexical variable scope, and recursion, with a static type system. C also provides constructs that map efficiently to typical machine instructions, which makes it one was of the most widely used programming languages today.
[Embedded C](https://en.wikipedia.org/wiki/Embedded_C) is a set of language extensions for the C programming language by the [C Standards Committee](https://isocpp.org/std/the-committee) to address issues that exist between C extensions for different [embedded systems](https://en.wikipedia.org/wiki/Embedded_system). The extensions hep enhance microprocessor features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. This makes Embedded C the most popular embedded software language in the world.
[C & C++ Developer Tools from JetBrains](https://www.jetbrains.com/cpp/)
[Open source C++ libraries on cppreference.com](https://en.cppreference.com/w/cpp/links/libs)
[C++ Graphics libraries](https://cpp.libhunt.com/libs/graphics)
[C++ Libraries in MATLAB](https://www.mathworks.com/help/matlab/call-cpp-library-functions.html)
[C++ Tools and Libraries Articles](https://www.cplusplus.com/articles/tools/)
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
[Introduction C++ Education course on Google Developers](https://developers.google.com/edu/c++/)
[C and C++ Coding Style Guide by OpenTitan](https://docs.opentitan.org/doc/rm/c_cpp_coding_style/)
[Chromium C++ Style Guide](https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md)
[C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md)
[C++ Style Guide for ROS](http://wiki.ros.org/CppStyleGuide)
[Learn C++](https://www.learncpp.com/)
[Learn C : An Interactive C Tutorial](https://www.learn-c.org/)
[C++ Institute](https://cppinstitute.org/free-c-and-c-courses)
[C++ Online Training Courses on LinkedIn Learning](https://www.linkedin.com/learning/topics/c-plus-plus)
[C++ Tutorials on W3Schools](https://www.w3schools.com/cpp/default.asp)
[Learn C Programming Online Courses on edX](https://www.edx.org/learn/c-programming)
[Learn C++ with Online Courses on edX](https://www.edx.org/learn/c-plus-plus)
[Learn C++ on Codecademy](https://www.codecademy.com/learn/learn-c-plus-plus)
[Coding for Everyone: C and C++ course on Coursera](https://www.coursera.org/specializations/coding-for-everyone)
[C++ For C Programmers on Coursera](https://www.coursera.org/learn/c-plus-plus-a)
[Top C Courses on Coursera](https://www.coursera.org/courses?query=c%20programming)
[C++ Online Courses on Udemy](https://www.udemy.com/topic/c-plus-plus/)
[Top C Courses on Udemy](https://www.udemy.com/topic/c-programming/)
[C++ For Programmers Course on Udacity](https://www.udacity.com/course/c-for-programmers--ud210)
[C++ Fundamentals Course on Pluralsight](https://www.pluralsight.com/courses/learn-program-cplusplus)
[Introduction to C++ on MIT Free Online Course Materials](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/)
[Introduction to C++ for Programmers | Harvard ](https://online-learning.harvard.edu/course/introduction-c-programmers)
[Online C Courses | Harvard University](https://online-learning.harvard.edu/subject/c)
## C/C++ Tools
[Visual Studio](https://visualstudio.microsoft.com/) is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
[Visual Studio Code](https://code.visualstudio.com/) is a code editor redefined and optimized for building and debugging modern web and cloud applications.
[Vcpkg](https://github.com/microsoft/vcpkg) is a C++ Library Manager for Windows, Linux, and MacOS.
[ReSharper C++](https://www.jetbrains.com/resharper-cpp/features/) is a Visual Studio Extension for C++ developers developed by JetBrains.
[AppCode](https://www.jetbrains.com/objc/) is constantly monitoring the quality of your code. It warns you of errors and smells and suggests quick-fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages. All code inspections are run on the fly.
[CLion](https://www.jetbrains.com/clion/features/) is a cross-platform IDE for C and C++ developers developed by JetBrains.
[Code::Blocks](https://www.codeblocks.org/) is a free C/C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. Built around a plugin framework, Code::Blocks can be extended with plugins.
[CppSharp](https://github.com/mono/CppSharp) is a tool and set of libraries which facilitates the usage of native C/C++ code with the .NET ecosystem. It consumes C/C++ header and library files and generates the necessary glue code to surface the native API as a managed API. Such an API can be used to consume an existing native library in your managed code or add managed scripting support to a native codebase.
[Conan](https://conan.io/) is an Open Source Package Manager for C++ development and dependency management into the 21st century and on par with the other development ecosystems.
[High Performance Computing (HPC) SDK](https://developer.nvidia.com/hpc) is a comprehensive toolbox for GPU accelerating HPC modeling and simulation applications. It includes the C, C++, and Fortran compilers, libraries, and analysis tools necessary for developing HPC applications on the NVIDIA platform.
[Thrust](https://github.com/NVIDIA/thrust) is a C++ parallel programming library which resembles the C++ Standard Library. Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies such as CUDA, TBB, and OpenMP integrates with existing software.
[Boost](https://www.boost.org/) is an educational opportunity focused on cutting-edge C++. Boost has been a participant in the annual Google Summer of Code since 2007, in which students develop their skills by working on Boost Library development.
[Automake](https://www.gnu.org/software/automake/) is a tool for automatically generating Makefile.in files compliant with the GNU Coding Standards. Automake requires the use of GNU Autoconf.
[Cmake](https://cmake.org/) is an open-source, cross-platform family of tools designed to build, test and package software. CMake 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 your choice.
[GDB](http://www.gnu.org/software/gdb/) is a debugger, that allows you to see what is going on `inside' another program while it executes or what another program was doing at the moment it crashed.
[GCC](https://gcc.gnu.org/) is a compiler Collection that includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages.
[GSL](https://www.gnu.org/software/gsl/) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.
[OpenGL Extension Wrangler Library (GLEW)](https://www.opengl.org/sdk/libs/GLEW/) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.
[Libtool](https://www.gnu.org/software/libtool/) is a generic library support script that hides the complexity of using shared libraries behind a consistent, portable interface. To use Libtool, add the new generic library building commands to your Makefile, Makefile.in, or Makefile.am.
[Maven](https://maven.apache.org/) is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
[TAU (Tuning And Analysis Utilities)](http://www.cs.uoregon.edu/research/tau/home.php) is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements as well as event-based sampling. All C++ language features are supported including templates and namespaces.
[Clang](https://clang.llvm.org/) is a production quality C, Objective-C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM (other targets may have caveats, but are usually easy to fix). Clang is used in production to build performance-critical software like Google Chrome or Firefox.
[OpenCV](https://opencv.org/) is a highly optimized library with focus on real-time applications. Cross-Platform C++, Python and Java interfaces support Linux, MacOS, Windows, iOS, and Android.
[Libcu++](https://nvidia.github.io/libcudacxx) is the NVIDIA C++ Standard Library for your entire system. It provides a heterogeneous implementation of the C++ Standard Library that can be used in and between CPU and GPU code.
[ANTLR (ANother Tool for Language Recognition)](https://www.antlr.org/) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface that makes it easy to respond to the recognition of phrases of interest.
[Oat++](https://oatpp.io/) is a light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.
[JavaCPP](https://github.com/bytedeco/javacpp) is a program that provides efficient access to native C++ inside Java, not unlike the way some C/C++ compilers interact with assembly language.
[Cython](https://cython.org/) is a language that makes writing C extensions for Python as easy as Python itself. Cython is based on Pyrex, but supports more cutting edge functionality and optimizations such as calling C functions and declaring C types on variables and class attributes.
[Spdlog](https://github.com/gabime/spdlog) is a very fast, header-only/compiled, C++ logging library.
[Infer](https://fbinfer.com/) is a static analysis tool for Java, C++, Objective-C, and C. Infer is written in [OCaml](https://ocaml.org/).
# Java Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [BitcoinJ](https://bitcoinj.github.io)
- [XChange](https://github.com/timmolter/XChange)## Java Learning Resources
[Java](https://www.oracle.com/java/) is a popular programming language and development platform(JDK). It reduces costs, shortens development timeframes, drives innovation, and improves application services. With millions of developers running more than 51 billion Java Virtual Machines worldwide.
[The Eclipse Foundation](https://www.eclipse.org/downloads/) is home to a worldwide community of developers, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks for Java and other languages.
[Getting Started with Java](https://docs.oracle.com/javase/tutorial/)
[Oracle Java certifications from Oracle University](https://education.oracle.com/java-certification-benefits)
[Google Developers Training](https://developers.google.com/training/)
[Google Developers Certification](https://developers.google.com/certification/)
[Java Tutorial by W3Schools](https://www.w3schools.com/java/)
[Building Your First Android App in Java](codelabs.developers.google.com/codelabs/build-your-first-android-app/)
[Getting Started with Java in Visual Studio Code](https://code.visualstudio.com/docs/java/java-tutorial)
[Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)
[AOSP Java Code Style for Contributors](https://source.android.com/setup/contribute/code-style)
[Chromium Java style guide](https://chromium.googlesource.com/chromium/src/+/master/styleguide/java/java.md)
[Get Started with OR-Tools for Java](https://developers.google.com/optimization/introduction/java)
[Getting started with Java Tool Installer task for Azure Pipelines](https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/java-tool-installer)
[Gradle User Manual](https://docs.gradle.org/current/userguide/userguide.html)
## Java Tools and Frameworks
[Java SE](https://www.oracle.com/java/technologies/javase/tools-jsp.html) contains several tools to assist in program development and debugging, and in the monitoring and troubleshooting of production applications.
[JDK Development Tools](https://docs.oracle.com/javase/7/docs/technotes/tools/) includes the Java Web Start Tools (javaws) Java Troubleshooting, Profiling, Monitoring and Management Tools (jcmd, jconsole, jmc, jvisualvm); and Java Web Services Tools (schemagen, wsgen, wsimport, xjc).
[Android Studio](https://developer.android.com/studio/) is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. Availble on Windows, macOS, Linux, Chrome OS.
[IntelliJ IDEA](https://www.jetbrains.com/idea/) is an IDE for Java, but it also understands and provides intelligent coding assistance for a large variety of other languages such as Kotlin, SQL, JPQL, HTML, JavaScript, etc., even if the language expression is injected into a String literal in your Java code.
[NetBeans](https://netbeans.org/features/java/index.html) is an IDE provides Java developers with all the tools needed to create professional desktop, mobile and enterprise applications. Creating, Editing, and Refactoring. The IDE provides wizards and templates to let you create Java EE, Java SE, and Java ME applications.
[Java Design Patterns ](https://github.com/iluwatar/java-design-patterns) is a collection of the best formalized practices a programmer can use to solve common problems when designing an application or system.
[Elasticsearch](https://www.elastic.co/products/elasticsearch) is a distributed RESTful search engine built for the cloud written in Java.
[RxJava](https://github.com/ReactiveX/RxJava) is a Java VM implementation of [Reactive Extensions](http://reactivex.io/): a library for composing asynchronous and event-based programs by using observable sequences. It extends the [observer pattern](http://en.wikipedia.org/wiki/Observer_pattern) to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.
[Guava](https://github.com/google/guava) is a set of core Java libraries from Google that includes new collection types (such as multimap and multiset), immutable collections, a graph library, and utilities for concurrency, I/O, hashing, caching, primitives, strings, and more! It is widely used on most Java projects within Google, and widely used by many other companies as well.
[okhttp](https://square.github.io/okhttp/) is a HTTP client for Java and Kotlin developed by Square.
[Retrofit](https://square.github.io/retrofit/) is a type-safe HTTP client for Android and Java develped by Square.
[LeakCanary](https://square.github.io/leakcanary/) is a memory leak detection library for Android develped by Square.
[Apache Spark](https://spark.apache.org/) is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis. It also supports a rich set of higher-level tools including Spark SQL for SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for stream processing.
[Apache Flink](https://flink.apache.org/) is an open source stream processing framework with powerful stream- and batch-processing capabilities with elegant and fluent APIs in Java and Scala.
[Fastjson](https://github.com/alibaba/fastjson/wiki) is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object.
[libGDX](https://libgdx.com/) is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, Mac OS X, Android, your WebGL enabled browser and iOS.
[Jenkins](https://www.jenkins.io/) is the leading open-source automation server. Built with Java, it provides over 1700 [plugins](https://plugins.jenkins.io/) to support automating virtually anything, so that humans can actually spend their time doing things machines cannot.
[DBeaver](https://dbeaver.io/) is a free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports any database which has JDBC driver (which basically means - ANY database). EE version also supports non-JDBC datasources (MongoDB, Cassandra, Redis, DynamoDB, etc).
[Redisson](https://redisson.pro/) is a Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, and local cache.
[GraalVM](https://www.graalvm.org/) is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++.
[Gradle](https://gradle.org/) is a build automation tool for multi-language software development. From mobile apps to microservices, from small startups to big enterprises, Gradle helps teams build, automate and deliver better software, faster. Write in Java, C++, Python or your language of choice.
[Apache Groovy](http://www.groovy-lang.org/) is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming.
[JaCoCo](https://www.jacoco.org/jacoco/) is a free code coverage library for Java, which has been created by the EclEmma team based on the lessons learned from using and integration existing libraries for many years.
[Apache JMeter](http://jmeter.apache.org/) is used to test performance both on static and dynamic resources, Web dynamic applications. It also used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.
[Junit](https://junit.org/) is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
[Mockito](https://site.mockito.org/) is the most popular Mocking framework for unit tests written in Java.
[SpotBugs](https://spotbugs.github.io/) is a program which uses static analysis to look for bugs in Java code.
[SpringBoot](https://spring.io/projects/spring-boot) is a great tool that helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need.
[YourKit](https://www.yourkit.com/) is a technology leader, creator of the most innovative and intelligent tools for profiling Java & .NET applications.
# Go Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [btcd](https://github.com/btcsuite/btcd/) is a Go-based full node since 2013.
## Go Learning Resources
[Go](https://golang.org/) is an open source programming language that makes it easy to build simple, reliable, and efficient software.
[Golang Contribution Guide](https://golang.org/doc/contribute.html)
[Google Developers Training](https://developers.google.com/training/)
[Google Developers Certification](https://developers.google.com/certification/)
[Uber's Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md)
[GitLab's Go standards and style guidelines](https://docs.gitlab.com/ee/development/go_guide/)
[Effective Go](https://golang.org/doc/effective_go.html)
[Go: The Complete Developer's Guide (Golang) on Udemy](https://www.udemy.com/course/go-the-complete-developers-guide/)
[Getting Started with Go on Coursera](https://www.coursera.org/learn/golang-getting-started)
[Programming with Google Go on Coursera](https://www.coursera.org/specializations/google-golang)
[Learning Go Fundamentals on Pluralsight](https://www.pluralsight.com/courses/go-fundamentals)
[Learning Go on Codecademy](https://www.codecademy.com/learn/learn-go)
## Go Tools
[golang tools](https://pkg.go.dev/golang.org/x/tools) holds the source for various packages and tools that support the Go programming language.
[Go in Visual Studio Code](https://code.visualstudio.com/docs/languages/go) is an extension that gives you language features like IntelliSense, code navigation, symbol search, bracket matching, snippets, and many more that will help you in Golang development.
[Traefik](https://github.com/traefik/traefik) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, etc.) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the only configuration step you need.
[Gitea](https://github.com/go-gitea/gitea) is Git with a cup of tea, painless self-hosted git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures.
[OpenFaaS](https://github.com/openfaas/faas) is Serverless Functions Made Simple. It makes it easy for developers to deploy event-driven functions and microservices to Kubernetes without repetitive, boiler-plate coding. Package your code or an existing binary in a Docker image to get a highly scalable endpoint with auto-scaling and metrics.
[micro](https://github.com/zyedidia/micro) is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals. As its name indicates, micro aims to be somewhat of a successor to the nano editor by being easy to install and use. It strives to be enjoyable as a full-time editor for people who prefer to work in a terminal, or those who regularly edit files over SSH.
[Gravitational Teleport](https://github.com/gravitational/teleport) is a modern security gateway for remotely accessing into Clusters of Linux servers via SSH or SSH-over-HTTPS in a browser or Kubernetes clusters.
[NATS](https://nats.io/) is a simple, secure and performant communications system for digital systems, services and devices. NATS is part of the Cloud Native Computing Foundation (CNCF). NATS has over 30 client language implementations, and its server can run on-premise, in the cloud, at the edge, and even on a Raspberry Pi. NATS can secure and simplify design and operation of modern distributed systems.
[Act](https://github.com/nektos/act) is a GO program that allows you to run our GitHub Actions locally.
[Fiber](https://gofiber.io/) is an [Express](https://github.com/expressjs/express) inspired web framework built on top of [Fasthttp](https://github.com/valyala/fasthttp), the fastest HTTP engine for Go. Designed to ease things up for fast development with zero memory allocation and performance in mind.
[Glide](https://github.com/Masterminds/glide) is a vendor Package Management for Golang.
[BadgerDB](https://github.com/dgraph-io/badger) is an embeddable, persistent and fast key-value (KV) database written in pure Go. It is the underlying database for [Dgraph](https://dgraph.io/), a fast, distributed graph database. It's meant to be a performant alternative to non-Go-based key-value stores like RocksDB.
[Go kit](https://github.com/go-kit/kit) is a programming toolkit for building microservices (or elegant monoliths) in Go. We solve common problems in distributed systems and application architecture so you can focus on delivering business value.
[Codis](https://github.com/CodisLabs/codis) is a proxy based high performance Redis cluster solution written in Go.
[zap](https://github.com/uber-go/zap) is a blazing fast, structured, leveled logging in Go.
[HttpRouter](https://github.com/julienschmidt/httprouter) is a lightweight high performance HTTP request router (also called multiplexer or just mux for short) for Go.
[Gorilla WebSocket](https://github.com/gorilla/websocket) is a Go implementation of the WebSocket protocol.
[Delve](https://github.com/go-delve/delve) is a debugger for the Go programming language.
[GORM](https://github.com/go-gorm/gorm) is a fantastic ORM library for Golang, aims to be developer friendly.
[Go Patterns](https://github.com/tmrts/go-patterns) is a curated collection of idiomatic design & application patterns for Go language.
# Python Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [BlockTrail SDK Python](https://github.com/blocktrail/blocktrail-sdk-python)
- [btctxstore](https://github.com/F483/btctxstore)
- [pycoin](https://github.com/richardkiss/pycoin)
- [bitcoin_tools](https://github.com/sr-gi/bitcoin_tools)## Python Learning Resources
[Python](https://www.python.org) is an interpreted, high-level programming language. Python is used heavily in the fields of Data Science and Machine Learning.
[Python Developer’s Guide](https://devguide.python.org) is a comprehensive resource for contributing to Python – for both new and experienced contributors. It is maintained by the same community that maintains Python.
[Azure Functions Python developer guide](https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-python) is an introduction to developing Azure Functions using Python. The content below assumes that you've already read the [Azure Functions developers guide](https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference).
[CheckiO](https://checkio.org/) is a programming learning platform and a gamified website that teaches Python through solving code challenges and competing for the most elegant and creative solutions.
[Python Institute](https://pythoninstitute.org)
[PCEP – Certified Entry-Level Python Programmer certification](https://pythoninstitute.org/pcep-certification-entry-level/)
[PCAP – Certified Associate in Python Programming certification](https://pythoninstitute.org/pcap-certification-associate/)
[PCPP – Certified Professional in Python Programming 1 certification](https://pythoninstitute.org/pcpp-certification-professional/)
[PCPP – Certified Professional in Python Programming 2](https://pythoninstitute.org/pcpp-certification-professional/)
[MTA: Introduction to Programming Using Python Certification](https://docs.microsoft.com/en-us/learn/certifications/mta-introduction-to-programming-using-python)
[Getting Started with Python in Visual Studio Code](https://code.visualstudio.com/docs/python/python-tutorial)
[Google's Python Style Guide](https://google.github.io/styleguide/pyguide.html)
[Google's Python Education Class](https://developers.google.com/edu/python/)
[Real Python](https://realpython.com)
[The Python Open Source Computer Science Degree by Forrest Knight](https://github.com/ForrestKnight/open-source-cs-python)
[Intro to Python for Data Science](https://www.datacamp.com/courses/intro-to-python-for-data-science)
[Intro to Python by W3schools](https://www.w3schools.com/python/python_intro.asp)
[Codecademy's Python 3 course](https://www.codecademy.com/learn/learn-python-3)
[Learn Python with Online Courses and Classes from edX](https://www.edx.org/learn/python)
[Python Courses Online from Coursera](https://www.coursera.org/courses?query=python)
## Python Frameworks and Tools
[Python Package Index (PyPI)](https://pypi.org/) is a repository of software for the Python programming language. PyPI helps you find and install software developed and shared by the Python community.
[PyCharm](https://www.jetbrains.com/pycharm/) is the best IDE I've ever used. With PyCharm, you can access the command line, connect to a database, create a virtual environment, and manage your version control system all in one place, saving time by avoiding constantly switching between windows.
[Python Tools for Visual Studio(PTVS)](https://microsoft.github.io/PTVS/) is a free, open source plugin that turns Visual Studio into a Python IDE. It supports editing, browsing, IntelliSense, mixed Python/C++ debugging, remote Linux/MacOS debugging, profiling, IPython, and web development with Django and other frameworks.
[Pylance](https://github.com/microsoft/pylance-release) is an extension that works alongside Python in Visual Studio Code to provide performant language support. Under the hood, Pylance is powered by Pyright, Microsoft's static type checking tool.
[Pyright](https://github.com/Microsoft/pyright) is a fast type checker meant for large Python source bases. It can run in a “watch” mode and performs fast incremental updates when files are modified.
[Django](https://www.djangoproject.com/) is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
[Flask](https://flask.palletsprojects.com/) is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.
[Web2py](http://web2py.com/) is an open-source web application framework written in Python allowing allows web developers to program dynamic web content. One web2py instance can run multiple web sites using different databases.
[AWS Chalice](https://github.com/aws/chalice) is a framework for writing serverless apps in python. It allows you to quickly create and deploy applications that use AWS Lambda.
[Tornado](https://www.tornadoweb.org/) is a Python web framework and asynchronous networking library. Tornado uses a non-blocking network I/O, which can scale to tens of thousands of open connections.
[HTTPie](https://github.com/httpie/httpie) is a command line HTTP client that makes CLI interaction with web services as easy as possible. HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers.
[Scrapy](https://scrapy.org/) is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.
[Sentry](https://sentry.io/) is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application.
[Pipenv](https://github.com/pypa/pipenv) is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world.
[Python Fire](https://github.com/google/python-fire) is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
[Bottle](https://github.com/bottlepy/bottle) is a fast, simple and lightweight [WSGI](https://www.wsgi.org/) micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the [Python Standard Library](https://docs.python.org/library/).
[CherryPy](https://cherrypy.org) is a minimalist Python object-oriented HTTP web framework.
[Sanic](https://github.com/huge-success/sanic) is a Python 3.6+ web server and web framework that's written to go fast.
[Pyramid](https://trypyramid.com) is a small and fast open source Python web framework. It makes real-world web application development and deployment more fun and more productive.
[TurboGears](https://turbogears.org) is a hybrid web framework able to act both as a Full Stack framework or as a Microframework.
[Falcon](https://falconframework.org/) is a reliable, high-performance Python web framework for building large-scale app backends and microservices with support for MongoDB, Pluggable Applications and autogenerated Admin.
[Neural Network Intelligence(NNI)](https://github.com/microsoft/nni) is an open source AutoML toolkit for automate machine learning lifecycle, including [Feature Engineering](https://github.com/microsoft/nni/blob/master/docs/en_US/FeatureEngineering/Overview.md), [Neural Architecture Search](https://github.com/microsoft/nni/blob/master/docs/en_US/NAS/Overview.md), [Model Compression](https://github.com/microsoft/nni/blob/master/docs/en_US/Compressor/Overview.md) and [Hyperparameter Tuning](https://github.com/microsoft/nni/blob/master/docs/en_US/Tuner/BuiltinTuner.md).
[Dash](https://plotly.com/dash) is a popular Python framework for building ML & data science web apps for Python, R, Julia, and Jupyter.
[Luigi](https://github.com/spotify/luigi) is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built-in.
[Locust](https://github.com/locustio/locust) is an easy to use, scriptable and scalable performance testing tool.
[spaCy](https://github.com/explosion/spaCy) is a library for advanced Natural Language Processing in Python and Cython.
[NumPy](https://www.numpy.org/) is the fundamental package needed for scientific computing with Python.
[Pillow](https://python-pillow.org/) is a friendly PIL(Python Imaging Library) fork.
[IPython](https://ipython.org/) is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history.
[GraphLab Create](https://turi.com/) is a Python library, backed by a C++ engine, for quickly building large-scale, high-performance machine learning models.
[Pandas](https://pandas.pydata.org/) is a fast, powerful, and easy to use open source data structrures, data analysis and manipulation tool, built on top of the Python programming language.
[PuLP](https://coin-or.github.io/pulp/) is an Linear Programming modeler written in python. PuLP can generate LP files and call on use highly optimized solvers, GLPK, COIN CLP/CBC, CPLEX, and GUROBI, to solve these linear problems.
[Matplotlib](https://matplotlib.org/) is a 2D plotting library for creating static, animated, and interactive visualizations in Python. Matplotlib produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.
[Scikit-Learn](https://scikit-learn.org/stable/index.html) is a simple and efficient tool for data mining and data analysis. It is built on NumPy,SciPy, and mathplotlib.
# JavaScript/TypeScript Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [Awesome CryptoCoinJS](https://github.com/cryptocoinjs/awesome-cryptocoinjs)
- [Bitcore Library](https://github.com/bitpay/bitcore-lib)
- [Bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib)
- [Cryptocoin](https://github.com/cryptocoinjs/cryptocoin)
- [BlockTrail SDK NodeJS](https://github.com/blocktrail/blocktrail-sdk-nodejs)
- [bcoin](https://github.com/bcoin-org/bcoin)## JavaScript/TypeScript Learning Resources
[TypeScript](https://www.typescriptlang.org) is a language for application-scale JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript.
[TypeScript support for Webpack](https://webpack.js.org/guides/typescript/)
[TypeScript Support for Nuxt.js](https://typescript.nuxtjs.org)
[TypeScript Support for Vue.js](https://vuejs.org/v2/guide/typescript.html)
[TypeScript Support for React Native](https://reactnative.dev/docs/typescript)
[TypeScript Support for Angular](https://angular.io/guide/typescript-configuration)
[Ionic/TypeScript Starter Project](http://justin-credible.github.io/Ionic-TypeScript-Starter/)
[GitHub Actions for JavaScript and TypeScript](https://docs.github.com/en/actions/language-and-framework-guides/github-actions-for-javascript-and-typescript)
## JavaScript/TypeScript Tools
[WebStorm](https://www.jetbrains.com/webstorm/) is a professional IDE for JavaScript(including support for both HTML and CSS) developed by JetBrains. WebStorm comes with intelligent code completion, on-the-fly error detection, powerful navigation and refactoring for JavaScript, TypeScript, stylesheet languages, and all the most popular frameworks([Angular](https://angular.io/), [React](https://reactjs.org/), [Vue.js](https://vuejs.org/), [Ionic](https://ionicframework.com/), [Apache Cordova](https://cordova.apache.org/), [React Native](https://reactnative.dev/), [Node.js](https://nodejs.org/), [Meteor](https://www.meteor.com/#!), and [Electron](https://www.electronjs.org/)).
[ReSharper](https://www.jetbrains.com/resharper/) is a Visual Studio Extension for .NET Developers. It comes with code quality analysis, which is available in C#, VB.NET, XAML, ASP.NET, ASP.NET MVC, JavaScript, TypeScript, CSS, HTML, and XML. You'll know right away if your code needs to be improved. ReSharper is one of many powerful tools developed by [JetBrains](https://www.jetbrains.com).
[ts-migrate](https://github.com/airbnb/ts-migrate) is a tool for helping migrate code to TypeScript. It takes a JavaScript, or a partial TypeScript, project in and gives a compiling TypeScript project out. ts-migrate is intended to accelerate the TypeScript migration process. The resulting code will pass the build, but a followup is required to improve type safety.
[Deno](https://deno.land) is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.
[gulp-typescript](https://github.com/ivogabe/gulp-typescript) is an TypeScript compiler for gulp with incremental compilation support.
[React](https://reactjs.org/) is a declarative, efficient, and flexible JavaScript library for building user interfaces.
[React Native](https://reactnative.dev) is a framework for building native apps for iOS and Android with React.
[Vue.js](http://vuejs.org/) is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
[Angular](https://www.angular.io/) is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.
[Ionic Framework](https://ionicframework.com/) is a powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.
[Stencil](https://stenciljs.com/) is a simple compiler for generating Web Components and static site generated progressive web apps (PWA). Stencil was built by the Ionic team for its next generation of performant mobile and desktop Web Components.
[Storybook](https://storybook.js.org/) is a development environment for UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components.It works with React, Vue, Angular, Ember, and other web frameworks.
[Prettier](https://prettier.io/) is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
[Nest](https://nestjs.com/) is a framework for building efficient, scalable [Node.js](http://nodejs.org/) server-side applications. It is built with TypeScript and combines elements of Object Oriented Programming(OOP), Functional Programming, and Functional Reactive Programming(FRP).
[Definitely Typed](https://github.com/DefinitelyTyped/DefinitelyTyped) is a repository for high quality TypeScript type definitions.
[TypeORM](https://github.com/typeorm/typeorm) is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript (ES5, ES6, ES7, ES8).
[NativeScript](https://www.nativescript.org/) empowers you to access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile development and can be utilized in a number of diverse use cases.
[AssemblyScript](https://assemblyscript.org/) compiles a strict variant of TypeScript to [WebAssembly](http://webassembly.org/) using [Binaryen](https://github.com/WebAssembly/binaryen).
[React Hook Form](https://react-hook-form.com/) is a performant, flexible and extensible forms with easy to use validation(Web + React Native).
[Apollo Client](https://apollographql.com/client) is a fully-featured caching GraphQL client with integrations for React, Angular, and more. It allows you to easily build UI components that fetch data via GraphQL.
[TensorFlow.js](https://js.tensorflow.org/) is an open-source WebGL hardware-accelerated JavaScript library for training and deploying machine learning models.
[Rome](https://romefrontend.dev/) is a linter, compiler, bundler, and [more](https://romefrontend.dev/#development-status) for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.
[Eclipse Theia](https://github.com/eclipse-theia/theia) is an extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies.
[InversifyJS](https://github.com/inversify/InversifyJS) is a powerful and lightweight inversion of control(IoC) container for JavaScript & Node.js apps powered by TypeScript. An IoC container uses a class constructor to identify and inject its dependencies.
[Gatsby](https://www.gatsbyjs.com/) is a free and open source framework based on React that helps developers build blazing fast websites and apps.
[Meteor](https://www.meteor.com/) is an ultra-simple environment for building modern web applications with JavavScript.
[TypeScript ESLint](https://typescript-eslint.io/) is a monorepo for all the tooling which enables ESLint to support TypeScript.
[TS node](https://github.com/TypeStrong/ts-node) is a TypeScript execution and REPL for node.js.
# C# Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [NBitcoin](https://github.com/MetacoSA/NBitcoin)
- [BitcoinLib](https://github.com/GeorgeKimionis/BitcoinLib)
- [QBitNinja](https://github.com/MetacoSA/QBitNinja)## C# Learning Resources
[C#](https://docs.microsoft.com/en-us/dotnet/csharp/) is a modern and object-oriented programming language developed by Microsoft to write any application using the C# programming language on the .NET platform.
[Taking your first steps with C#](https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/)
[Learning C#](https://dotnet.microsoft.com/learn/csharp)
[C# development with Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/csharp/)
[C# programming with Visual Studio Code](https://code.visualstudio.com/Docs/languages/csharp)
[Working with data in C#](https://docs.microsoft.com/en-us/learn/paths/csharp-data/)
[C# Tutorial by W3Schools](https://www.w3schools.com/cs/)
[Windows Forms for .NET 5 and .NET Core 3.1](https://docs.microsoft.com/en-us/dotnet/desktop/winforms/?view=netdesktop-5.0)
[Xamarin documentation](https://docs.microsoft.com/en-us/xamarin/)
[Advanced Topics in C# by Udemy](https://www.udemy.com/course/advanced-topics-csharp/)
[The complete C# tutorial](https://csharp.net-tutorials.com/)
[Unity C# Survival Guide](https://learn.unity.com/course/unity-c-survival-guide)
[RabbitMQ .NET/C# Client API](https://www.rabbitmq.com/dotnet-api-guide.html)
## C# Tools
[Mono](https://www.mono-project.com/) is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
[Visual Studio](https://visualstudio.microsoft.com/) is an integrated development environment (IDE) from Microsoft; which is a feature-rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
[MSBuild](https://github.com/dotnet/msbuild) is the build platform for .NET and Visual Studio. MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild to perform team builds through Azure DevOps Server, but MSBuild can run without Visual Studio.
[Roslyn](https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/) is a .NET compiler developed by Microsoft that provides C# and Visual Basic languages with rich code analysis APIs.
[Bot Framework](https://github.com/microsoft/botframework-sdk) is a framework developed by Microsoft that provides the most comprehensive experience for building conversation applications. Developers can model and build sophisticated conversation using their favorite programming languages including C#, JS, Python and Java or using Bot Framework Composer, an open-source, visual authoring canvas for developers and multi-disciplinary teams to design and build conversational experiences with Language.
[Uno Platform](https://platform.uno/) is a Universal Windows Platform Bridge that allows UWP-based code (C# and XAML) to run on iOS, Android, macOS, WebAssembly, Linux and Windows 7. It provides the full definitions of the UWP [Windows 10 2004 (19041)](https://docs.microsoft.com/en-us/windows/uwp/whats-new/windows-10-build-19041), and the implementation of a growing number of parts of the UWP API, such as Windows.UI.Xaml, to enable UWP and WinUI applications to run on these platforms.
[Rider](https://www.jetbrains.com/rider/) is a fast and powerful, cross-platform .NET IDE devloped by JetBrains to develop .NET, ASP.NET, .NET Core, Xamarin; or Unity applications for Windows, Mac, Linux.
[Resharper](https://www.jetbrains.com/resharper/) is a [Visual Studio](https://visualstudio.microsoft.com/) Extension for .NET Developers that has On-the-fly code quality analysis for C#, VB.NET, XAML, ASP.NET, ASP.NET MVC, JavaScript, TypeScript, CSS, HTML, and XML. Letting you know right away if your code needs to be improved.
[dotPeek](https://www.jetbrains.com/decompiler/) is a tool developed by JetBrains based on ReSharper's bundled decompiler. It can reliably decompile any .NET assembly into equivalent C# or CIL code.
[dotTrace](https://www.jetbrains.com/profiler/) is an .NET performance Profiler developed by Jet Brains. It helps users locate performance bottlenecks in a variety of .NET applications: desktop applications, .NET Core, ASP.NET, ASP.NET Core applications hosted on IIS or IIS Express web servers, Silverlight, WCF services, Windows services, Universal Windows Platform applications, and unit tests.
[dotMemory](https://www.jetbrains.com/dotmemory/) is an .NET memory Profiler developed by Jet Brains. It allows the user to analyze memory usage in a variety of .NET and .NET Core applications: desktop applications, Windows services, ASP.NET web applications, IIS, IIS Express, arbitrary .NET processes, and more.
[dotCover](https://www.jetbrains.com/dotcover/) is an .NET unit test runner and code coverage tool developed by Jet Brains. It helps the user figure out on-the-fly which unit tests are affected by your latest code changes, and automatically re-runs the affected tests for you. The continuous testing mode can be switched on for any unit test session.
[Json.NET](https://www.newtonsoft.com/json) is a popular high-performance JSON framework for .NET.
[Quasar](https://github.com/quasar/Quasar) is a fast and light-weight remote administration tool coded in C#. The usage ranges from user support through day-to-day administrative work to employee monitoring. Providing high stability and an easy-to-use user interface, Quasar is the perfect remote administration solution for you.
[CodeMaid](https://github.com/codecadwallader/codemaid) is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.
[.NET Fiddle](https://dotnetfiddle.net/) is an advanced online compiler for C# that allows you to create, run and share your code online.
[Octopus Deploy](https://octopus.com/) is a single place for your team to manage releases, automate deployments, and automate the runbooks that keeps your software operating.
[Appveyor](https://ci.appveyor.com/) is a cloud-based continuous integration system that integrates natively with your source control and allows CI configuration files to live alongside your projects.
[AppHarbor](https://appharbor.com/) is a .NET Platform-as-a-Service that let's developers deploy and scale any standard .NET application to the cloud.
[ANTLR (ANother Tool for Language Recognition)](https://www.antlr.org/) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface that makes it easy to respond to the recognition of phrases of interest.
[AutoRest](https://github.com/Azure/autorest) is a tool generates client libraries for accessing RESTful web services using the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) format. It Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python, Ruby.
[Markdig](https://github.com/lunet-io/markdig) is a fast, powerful, [CommonMark](https://commonmark.org/) compliant, extensible Markdown processor for .NET.
# Ruby Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [Bitcoin-ruby](https://github.com/lian/bitcoin-ruby)
## Ruby Learning Resources
[Ruby](https://www.ruby-lang.org/en/) is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
[Ruby Documentation](https://www.ruby-lang.org/en/documentation/)
[Ruby Community](https://www.ruby-lang.org/en/community/)
[Ruby Gems](https://guides.rubygems.org/rubygems-basics/)
[Ruby courses by Coursera](https://www.coursera.org/courses?query=ruby)
[Learn Ruby course by Codecademy](https://www.codecademy.com/learn/learn-ruby)
[Ruby Glossary](https://www.codecademy.com/articles/glossary-ruby)
[Ruby in Twenty Minutes Quickstart](https://www.ruby-lang.org/en/documentation/quickstart/)
[Getting started with a Ruby on Rails application on CircleCI.](https://circleci.com/docs/2.0/language-ruby/)
[The Ruby Style Guide](https://rubystyle.guide)
[Airbnb's Ruby Style Guide](https://github.com/airbnb/ruby)
## Ruby Tools
[RubyMine](https://www.jetbrains.com/ruby/) is a professional IDE developed by Jet Brains that provides support for Ruby, Ruby on Rails and web development.
[Rails](https://rubyonrails.org/) is a web-application framework that includes everything needed to create database-backed web applications according to the [Model-View-Controller (MVC)](https://en.wikipedia.org/wiki/Model-view-controller) pattern. Understanding the MVC pattern is key to understanding Rails. MVC divides your application into three layers: Model, View, and Controller, each with a specific responsibility.
[rbenv](https://github.com/rbenv/rbenv) allows to pick a Ruby version for your application and guarantee that your development environment matches production. Put rbenv to work with Bundler for painless Ruby upgrades and bulletproof deployments.
[Prettier for Ruby](https://prettier.io/) is a plugin for the Ruby programming language and its ecosystem. prettier is an opinionated code formatter that supports multiple languages and integrates with most editors. The idea is to eliminate discussions of style in code review and allow developers to get back to thinking about code design instead.
[Active Admin](https://activeadmin.info/) is a Ruby on Rails framework for creating elegant backends for website administration.
[Capistrano](https://github.com/capistrano/capistrano) is a framework for building automated deployment scripts. Although Capistrano itself is written in Ruby, it can easily be used to deploy projects of any language or framework, be it Rails, Java, or PHP.
[Spree](https://spreecommerce.org/) is an open source E-commerce platform for Rails 6 with a modern UX, optional PWA frontend, REST API, GraphQL, several official extensions and 3rd party integrations.
[Sidekiq](https://sidekiq.org/) is a simple, efficient background processing for Ruby. It uses hreads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails to make background processing dead simple.
[Kaminari](https://github.com/amatsuda/kaminari/wiki) is a Scope and Engine based, clean, powerful, and customizable paginator for modern web app frameworks and ORMs.
[React-Rails](https://github.com/reactjs/react-rails) is a flexible tool to use [React](http://facebook.github.io/react/) with Rails. By integrating React.js with Rails views and controllers, the asset pipeline, or webpacker.
[Pry](https://github.com/pry/pry) is a runtime developer console and IRB alternative with powerful introspection capabilities.
[Brakeman](https://brakemanscanner.org/) is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities.
[dotenv](https://github.com/bkeepers/dotenv) is a Ruby gem to load environment variables from `.env`.
[Scientist](https://github.com/github/scientist) is a Ruby library for carefully refactoring critical paths.
[fastlane](https://fastlane.tools/) is a tool written in Ruby for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.
[Fluentd](https://www.fluentd.org/) collects events from various data sources and writes them to files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on all written in Ruby.
# PHP Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
- [PHP-OP_RETURN](https://github.com/coinspark/php-OP_RETURN)
- [BlockTrail PHP SDK](https://github.com/blocktrail/blocktrail-sdk-php)## PHP Learning Resources
[PHP](https://www.php.net/) is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
[PHP 8](https://www.php.net/releases/8.0/en.php)
[What's New in PHP 8 - Auth0](https://auth0.com/blog/whats-new-php-8/)
[PHP Manual](https://www.php.net/manual/en/index.php)
[MIT's PHP Code Style Guide](https://mitsloan.mit.edu/shared/content/PHP_Code_Style_Guide.php)
[PHP Style Guide](https://gist.github.com/ryansechrest/8138375)
[PHP tutorial by W3Schools](https://www.w3schools.com/php/)
[PHP MySQL & CodeIgniter Course on Udemy](https://www.udemy.com/course/php-mysql-codeigniter-complete-guide/)
## PHP Tools
[Visual Studio Code](https://code.visualstudio.com/) is a code editor redefined and optimized for building and debugging modern web and cloud applications.
[Code Server](https://coder.com/) is a tool that allows you to run [VS Code](https://code.visualstudio.com/) on any machine anywhere and access it in the browser.
[PhpStorm](https://www.jetbrains.com/phpstorm/) is a professional PHP IDE developed by Jet Brains for working with Symfony, Laravel, Drupal, WordPress, Laminas, Magento, Joomla!, CakePHP, Yii, and other frameworks.
[Laravel](https://laravel.com/) is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling.
[PHP Intelephense](https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client) is a high performance PHP language server packed full of essential features for productive PHP development in Visual Studio Code.
[PHP Tools for Visual Studio/VS Code](https://www.devsense.com/en) is a an extension that turn Visual Studio into a powerful PHP development environment.
[Symfony](https://symfony.com/) is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the [popular PHP projects](https://symfony.com/projects) (including Drupal and Magento).
[CakePHP](https://cakephp.org) is a rapid development framework for PHP which uses commonly known design patterns like Associative Data Mapping, Front Controller, and MVC. CakePHP's main goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.
[Composer](https://getcomposer.org/) is a tools helps you declare, manage, and install dependencies of PHP projects.
[Guzzle](https://github.com/guzzle/guzzle) is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services.
[DesignPatternsPHP](https://designpatternsphp.readthedocs.io/) is a collection of known design patterns and some sample code how to implement them in PHP 7.4. Every pattern has a small list of examples.
[CodeIgniter](https://codeigniter.com/) is an Application Development Framework for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.
[HHVM](https://hhvm.com/) is an open-source virtual machine designed for executing programs written in [Hack](https://hacklang.org/). HHVM uses a just-in-time (JIT) compilation approach to achieve superior performance while maintaining amazing development flexibility. HHVM should be used together with a webserver like the built in, easy to deploy [Proxygen](https://docs.hhvm.com/hhvm/basic-usage/proxygen), or a [FastCGI-based](https://docs.hhvm.com/hhvm/advanced-usage/fastCGI) webserver on top of nginx or Apache.
[PHPUnit](https://phpunit.de/) is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.
[Phalcon](https://phalcon.io/) is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resource consumption.
[Swoole](https://www.swoole.co.uk/) is an event-driven asynchronous & coroutine-based concurrency networking communication engine with high performance written in C and C++ for PHP.
[Matomo](https://matomo.org/) is a full-featured PHP MySQL software program that you download and install on your own webserver. At the end of the five-minute installation process, you will be given a JavaScript code. Simply copy and paste this tag on websites you wish to track and access your analytics reports in real-time.
[Grav](https://getgrav.org/) is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful Package Management System to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.
[Whoops](https://filp.github.io/whoops/) is an error handler framework for PHP. Out-of-the-box, it provides a pretty error interface that helps you debug your web projects, but at heart it's a simple yet powerful stacked error handling system.
[Slim](https://www.slimframework.com/) is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.
# Rust Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
## Rust Learning Resources
[Rust](https://www.rust-lang.org) is a multi-paradigm programming language focused on performance and safety. Rust has a comparable amount of runtime to C and C++, and has set up its standard library to be amenable towards OS development. Specifically, the standard library is split into two parts: core and std. Core is the lowest-level aspects only, and doesn't include things like allocation, threading, and other higher-level features.
[The Rust Language Reference](https://doc.rust-lang.org/nightly/reference/)
[The Rust Programming Language Book](https://doc.rust-lang.org/book/)
[Learning Rust](https://www.rust-lang.org/learn)
[Why AWS loves Rust](https://aws.amazon.com/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/)
[Rust Programming courses on Udemy](https://www.udemy.com/courses/search/?src=ukw&q=Rust)
[Safety in Systems Programming with Rust at Standford by Ryan Eberhardt](https://reberhardt.com/blog/2020/10/05/designing-a-new-class-at-stanford-safety-in-systems-programming.html)
[WebAssembly meets Kubernetes with Krustlet using Rust](https://cloudblogs.microsoft.com/opensource/2020/04/07/announcing-krustlet-kubernetes-rust-kubelet-webassembly-wasm/)
[Microsoft's Project Verona](https://github.com/microsoft/verona/blob/master/docs/explore.md)
## Rust Tools
[Cargo](https://github.com/rust-lang/cargo) is a package manager that downloads your Rust project’s dependencies and compiles your project.
[Crater](https://crater.rust-lang.org/) is a tool to run experiments across parts of the Rust ecosystem. Its primary purpose is to detect regressions in the Rust compiler, and it does this by building a large number of crates, running their test suites and comparing the results between two versions of the Rust compiler. It can operate locally (with Docker as the only dependency) or distributed on the cloud. It can operate locally (with Docker as the only dependency) or distributed on the cloud.
[VSCode-Rust](https://github.com/rust-lang/vscode-rust) is plugin that adds language support for Rust to Visual Studio Code. Rust support is powered by a separate language server - either by the official Rust Language Server (RLS) or rust-analyzer, depending on the user's preference. If you don't have it installed, the extension will install it for you (with permission). This extension is built and maintained by the Rust IDEs and editors team with the focus on providing a stable, high quality extension that makes the best use of the respective language server.
[Apache Arrow](https://github.com/apache/arrow) is a development platform for in-memory analytics. It contains a set of technologies that enable big data systems to process and move data fast. Arrow's libraries are available for C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust.
[Wasmer](https://wasmer.io/) enables super lightweight containers based on [WebAssembly](https://webassembly.org/) that can run anywhere such as the Desktop to the Cloud and IoT devices, and also embedded in [any programming language](https://github.com/wasmerio/wasmer#language-integrations).
[Firecracker](https://firecracker-microvm.github.io) is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers. Firecracker has also been integrated in container runtimes, for example [Kata Containers](https://github.com/kata-containers/documentation/wiki/Initial-release-of-Kata-Containers-with-Firecracker-support) and [Weaveworks Ignite](https://github.com/weaveworks/ignite).
[Tokio](https://github.com/tokio-rs/tokio) is an event-driven, non-blocking I/O platform for writing asynchronous applications with the Rust programming language.
[TiKV](https://github.com/tikv/tikv) is an open-source distributed transactional key-value database that also provides classical key-vlue APIs, but also transactional APIs with ACID compliance.
[Sonic](https://crates.io/crates/sonic-server) is a fast, lightweight and schema-less search backend similar to Elasticsearch in some use-cases.
[Hyper](https://github.com/hyperium/hyper) is a fast and correct HTTP library for Rust.
[Rocket](https://github.com/SergioBenitez/Rocket) is an async web framework for Rust with a focus on usability, security, extensibility, and speed.
[Clippy](https://rust-lang.github.io/rust-clippy/) is a collection of lints to catch common mistakes and improve your Rust code.
[Servo](https://github.com/servo/servo) is a prototype web browser engine written in the Rust language.
[Vector](https://vector.dev/) is a high-performance, end-to-end (agent & aggregator) observability data platform that puts the user in control of their observability data.
[RustPython](https://github.com/RustPython/RustPython) is a Python Interpreter written in Rust.
[Miri](https://github.com/rust-lang/miri) is an interpreter for Rust's mid-level intermediate representation. It can run binaries and test suites of cargo projects and detect certain classes of undefined behavior. Miri will alsowill also tell you about memory leaks: when there is memory still allocated at the end of the execution, and that memory is not reachable from a global static, Miri will raise an error.
[Chalk](https://rust-lang.github.io/chalk/book/) is an implementation and definition of the Rust trait system using a PROLOG-like logic solver.
[stdarch](https://doc.rust-lang.org/stable/core/arch/) is Rust's standard library vendor-specific APIs and run-time feature detection.
[Simpleinfra](https://github.com/rust-lang/simpleinfra) is rep that contains the tools and automation written by the Rust infrastructure team to manage our services. Using some of the tools in this repo require privileges only infra team members have.
[Rustlings](https://github.com/rust-lang/rustlings) is a small set of exercises to get you used to reading and writing Rust code.
[Krustlet](https://krustlet.dev/) acts as a Kubernetes Kubelet(written in Rust) by listening on the event stream for new pods that the scheduler assigns to it based on specific Kubernetes [tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/). The project is currently experimental.
# Erlang Development
[Back to the Top](https://github.com/mikeroyal/Blockchain-Guide#table-of-contents)
## Erlang Learning Resources
[Erlang](https://www.erlang.org/) is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging.
[Erlang Programming Trainging Modules](https://www.erlang.org/course)
[Getting Started With Erlang](http://erlang.org/doc/getting_started/users_guide.html)
[Erlang Reference Manual](https://erlang.org/doc/reference_manual/users_guide.html)
[Erlang courses on Udemy](https://www.udemy.com/topic/erlang/)
[Erlang courses on Erlang Solutions](https://www.erlang-solutions.com/training/all-online-courses.html)
[Erlang/Elixir Syntax: A Crash Course](https://elixir-lang.org/crash-course.html)
[Erlang Programming Rules and Conventions](https://www.erlang.se/doc/programming_rules.shtml)
## Erlang Tools, Libraries, and Frameworks
[Erlang LS](https://erlang-ls.github.io/editors/vscode/) is a Visual Studio Code Extension for the Erlang Language Server.
[asdf](https://asdf-vm.com/) is a CLI tool that can manage multiple language runtime versions on a per-project basis with support for Ruby, Node.js, Elixir, Erlang & more.
[EMQ X Broker](https://www.emqx.io/) is a fully open source, highly scalable, highly available distributed MQTT messaging broker for IoT, M2M and Mobile applications that can handle tens of millions of concurrent clients.
[Lumen](https://github.com/lumen/lumen) is a new compiler and runtime for BEAM languages, designed for WebAssembly.
[Cowboy](https://github.com/ninenines/cowboy) is a small, fast and modern HTTP server for Erlang/OTP.
[Apache CouchDB](https://couchdb.apache.org/) is a seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability.
[Ejabberd](https://www.process-one.net/en/ejabberd/) is a distributed, fault-tolerant technology that allows the creation of large-scale instant messaging applications. The server can reliably support thousands of simultaneous users on a single node and has been designed to provide exceptional standards of fault tolerance.
[Rustler](https://docs.rs/crate/rustler) is a library for writing Erlang NIFs in safe Rust code meaning there should be no ways to crash the BEAM (Erlang VM). The library provides facilities for generating the boilerplate for interacting with the BEAM, handles encoding and decoding of Erlang terms, and catches rust panics before they unwind into C.
[Tsung](https://github.com/processone/tsung) is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
[Alpaca](https://github.com/alpaca-lang/alpaca) is a statically typed, strict/eagerly evaluated, functional programming language for the Erlang virtual machine (BEAM).
[Manifold](https://github.com/discord/manifold) is a fast batch message passing between nodes for Erlang/Elixir.
[Lager](https://github.com/erlang-lager/lager) is a logging framework for Erlang/OTP.
[Hackney](https://github.com/benoitc/hackney) is a simple HTTP client in Erlang.
## Contribute
- [x] If would you like to contribute to this guide simply make a [Pull Request](https://github.com/mikeroyal/Blockchain-Guide/pulls).
## License
Distributed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) Public License](https://creativecommons.org/licenses/by/4.0/).