Can anyone write a short comparison between the most important features of the two libraries?
The 2 main advantages of ethers.js in my mind are:
- ENS names are first-class citizens
- key management and state - separation of concerns
There are a number of other differentiating factors.
For me, it is less about features (however there are a couple cool features/design choices in ethers.js).
- well tested
- well documented
- well maintained
- less buggy
If you want to use ethers, you might want to check Waffle, a framework for creating smart contracts with ethers.