Believe it or not, I launched Hive Stream over five years ago. If you're not familiar with my library (and I don't think it's that known, so I wouldn't blame you), it allows you to easily build Hive apps using Node.js. It handles streaming, catching up if your node goes down, listening to transfers, custom JSON operations and all of the other things app developers would want to do on Hive.
It's on GitHub btw https://github.com/Vheissu/hive-stream
Admittedly, I haven't given much love to Hive Stream over the years. While the beautiful thing about Hive is that it is so simple nothing has needed to be fixed for the core functionality, it definitely has benefitted from some modernisation.
And that's exactly what I've done.
The core streaming aspect of Hive Stream is still there, but it has a lot of new goodies under the hood. It now supports PostgreSQL databases in addition to the existing support for SQLite and MongoDB. I kind wrote my own adapter functionality here, bit I've swappwed it out for knex.js, which means less code to maintain.
New contracts have been added. A NFT contract showing you how to build an app with custom NFT implementation for the Hive blockchain (great if you're wanting to build your own layer 2 solution for NFTs). Similarly, a token contract has been created which allows for the creation and management of custom tokens on Hive.
These contracts server for use by developers (there is also a lottery, dice and coinflip contract too) but also there as examples of what you can build using Hive Stream.
I've completely revamped time based actions too. If you're wondering what those are, they are basically cron jobs for your Hive apps. You can specify something happens every X amount of time. Perfect if you're building an app that requires performing an action on a schedule (it relies on the blockchain for timing, not the server), like a game with time based actions.
I also fixed up the conversion rate functionality. This library has integration with Coingecko to get HIVE/HBD rates and I also fixed up the base currency fetching logic to get rates for base fiat currencies when doing conversions for estimated Hive token equivalent costs (for payment based operations where these figures matter).
In addition to all of this, I also added in a TONNE of unit tests. These allow for faster iteration of the library and confidence knowing that the existing functionality isn't being broken. It allows for taking bigger chances with higher confidence and testing your code is just good housekeeping as a dev imo.
I am currently working on some additional features for the library, including a nice little dashboard you can access for stats info (perfect for the nerds) and also allow developers running the library to manage their applications (perform actions, manage conracts, etc). There is still so much I want to do with this.
I actually use this library in many of my own Hive apps and it saves a lot of time because you don't have to worry about managing a lot of things you usually would if you're building from scratch. So if you're looking to build your own apps and want to avoid the song and dance of having to install dhive
, express
, configure everything, it can save a tonne of time.
This is an open source library, so contributions are encouraged and accepted. Plus you can see the code for yourself: https://github.com/Vheissu/hive-stream
(oh, and while I've documented the library fairly well in the main README, proper docs are on the way).