Husarnet 2.0 release note

Hello Dear Users,
after almost a year of work the day has come! We’re finally ready to release Husarnet 2.0!

Let’s start with action items for you first and then we’ll describe what has changed with more details.

  1. There are now two separate binaries husarnet-daemon and husarnet (CLI). If your scripts are using those paths directly - be ready to update them
  2. CLI commands have changed - please have a look at updated Husarnet Documentation - for the detailed changes and, again, if your scripts are using those - be ready for changing them
  3. We will release the new version tomorrow. Your regular methods of upgrading software should pick them up with no actions required from you. There’s a migrator prepared for the config files - during the first start of the husarnet-daemon it will do all the required changes for you

…and that’s it! Now let us describe what we’ve changed, why this was needed and what it means for you.

  1. Unified experience for all of the platforms - the previous version of the codebase made it difficult to support various platforms in a unified way. As we want to grow onto new platforms, we needed to make necessary changes to make it as unified as possible. Now, for example, the CLI experience on Windows and Linux platforms will be the same. Keep an eye for new platforms soon!
  2. API-centric approach - we’ve started a migration from custom protocols to industry-standard ones. Now you can control husarnet-daemon using regular HTTP API. That means no more CLI parsing in your scripts - you’ll be getting regular JSON responses that you can parse using tools like jq. CLI is currently using this feature but it’s not yet marked as fully stable. We will publish detailed docs at our documentation page when it makes it to stable.
  3. Dashboard API - instead of keeping a special API for enterprise customers only, we’ve now rolled a GraphQL API available to all of our users. You can now manage your devices/groups using it. New CLI is already capable of interacting with it. Try it out using husarnet dashboard -h! As per husarnet-daemon API - we are not marking it as fully stable right now and the documentation will be available at the later time.
  4. Naming change - this is a part of a process that will take place over next couple months - we’re making naming more consistent and intuitive. So far the most important change is Husarnet Network to Husarnet Group. Right now this change is reflected in CLI only, but it’ll make more sense once it makes into new Dashboard.
  5. Short join codes - join codes can now use a short format (without the Websetup IP prefix that is automatically added using the license file).
  6. CLI is written in Go - in order to ease a development of new features our CLI is now written in Go. Right now it’s not made to be importable from other packages, but we plan to make it so. You’ll then be able to use our logic for communication with both Husarnet Daemons and Husarnet Dashboard in your projects!
  7. Semver - we’ve finally joined the semver bandwagon and will stick to it. Our plan is to keep development and regular patches on the patch section and release all the things relevant for users on minor section. That means you can expect changelogs and blog posts about new features more often.
  8. Dropped ROS 1 master node marking - over the next couple of weeks we will be dropping the support for marking nodes as ROS master. This feature was increasingly complex to support while the userbase dropped steadily.

That’s not all, but 8 is a good, “round” number so let’s keep it at it for now :wink:

How to test it before tomorrow? Glad you asked! Run as root:

curl | bash -

or use husarnet/husarnet-nightly:latest in your Docker/compose files.

Keep in mind though that nightly repos are not meant for production and those builds are regularly broken so… remember to go back to stable branches after tomorrow.

What are our goals for the future? Our todolist never stops growing, fortunately our team is growing too. Because of that we can start working on multiple axis: Dashboard, ESP32, infrastructure resiliency and monitoring. The most visible changes will be at Husarnet Dashboard - we plan on doing a complete rework to more easily support the API centric approach. As our contributions to external repositories were accepted, our ESP32 port will be reworked into a regular library which is probably the most requested feature for ESP32.

Finally we’re sorry for not being active enough on community forums - we were super busy making the new release available to you. Most of the bugs reported over last couple of weeks should be fixed in the new release though.

We’re extremely excited for this release and looking forward to any feedback from you.

Have a wonderful day
Paweł on behalf of the whole Husarnet Team