JavaScript: 3 alternativas a web3.js para Ethereum

Seguimos hablando sobre web3.js, JavaScript y Ethereum. En el artículo de hoy quiero proponerte 3 alternativas a la biblioteca de Ethereum con “mejor marketing” del momento.

Espero que te sean útil. Pero antes de seguir, te recomiendo leer los siguientes artículos:

Qué es web3.js?

Por si no recuerdas, web3.js es una “colección de bibliotecas de JavaScript que te ayudan a interactuar con un nodo de Ethereum”.

En el artículo de la semana pasada vimos cómo conectar web3.js a Ethereum, pero web3.js no es la única herramienta capaz de hacerlo. Toma nota sobre las siguientes alternativas:

1. ethers.js

ethers.js es una implementación completa de la biblioteca y la cartera de Ethereum en JavaScript (y TypeScript).

Es posible que sea el mayor competidor de web3.js, pesa ligeramente menos y está implementado en Typescript.

Las siguientes son algunas de sus mejores características:

  • Mantén tus claves privadas a salvo en tu cliente
  • Importa y exporta carteras JSON (Geth, Parity y crowdsale)
  • Importa y exporta frases mnemotécnicas BIP 39 y billeteras HD
  • Conecta a los nodos de Ethereum a través de JSON-RPC, INFURA, Etherscan, Alchemy o MetaMask
  • Diminuto (~ 104 kb comprimidos; 322 kb sin comprimir)
  • Paquetes modulares
  • Documentación extensa
  • Licencia MIT; código completamente abierto

2. truffle-contract

truffle-contract es una biblioteca de JavaScript que quiere proporcionar una “mejor abstracción de contratos de Ethereum, para Node.js y el navegador”.

Las siguientes son sus características principales:

  • Transacciones sincronizadas para un mejor flujo de control
  • Promesas. Funciona bien con ES6 y async/await
  • Valores predeterminados para transacciones
  • Registros de devolución, recibo de transacciones

3. ethjs

ethjs es una “utilidad de JavaScript ligera y altamente optimizada para Ethereum”.  Es un módulo simple para crear dApps y aplicaciones que usan Ethereum. Una característica importante de ethjs es que está basada en web3.js, pero más ligera y usa BN.js.

Características principales:

  • En desarrollo y altamente experimental
  • Puede realizar transacciones (cambiar) y llamar (obtener información) la cadena de bloques
  • Connecta a través de infura.
  • Cobertura completa de la especificación Ethereum RPC
  • Facilidad para gestionar eventos y filtros
  • Completamente asincrónico al manejar datos de cualquier proveedor, nodo o cliente de Ethereum

Conclusión

Cómo has podido ver, las tres herramientas comentadas en este artículo tienen funcionalidades muy similares. Te animo a instalar y hacer pruebas con cada una de las tres, y decidir cuál de ellas se adapta mejor a tus necesidades.

Si tuviera que escoger una de las cuatro (con web3.js), me quedaría con web3.js y después con ethers.js. ¿Y tu? ¡Coméntalo abajo!

Foto: @ksandrphoto  @freepik