Web3.js is the leading client library for Ethereum. Personally, I am fine with it, but I know that some developers don’t like it because of the beta that never ends, and some random regressions happening between in recent releases. In anycase, it’s always good to know some alternatives so that we can compared. In this article, I will introduce the pros and cons of 3 alternatives:
Ether.js is the strongest competitor to web3.js. It is a bit more lightweight than web3, is implemented in typescript, and has some interesting features for creating custom wallets. It is also a bit more stable than web3 (less random bugs).
Truffle-contract is not very well-known because it’s hidden inside the monorepo of the truffle framework. It is used internally by Truffle to fullfill the same role as web3. That’s why when you interact with a smart contract in the Truffle console, the API is not the one of web3. The advantage is that if you want to work with Truffle it provides a better integration with the framework, in particular to import the contract artifact with the
Ethjs is even less known than Truffle-contract. It is a lightweight alternative to web3, even though it’s actually based on web3. Out of all these web3 alternatives, I would say that it’s the easiest to learn.
Which of these are you going to try?