highlights
Mar 15, 2023

March 2023 Unison library and codebase manager updates

Rebecca Mark

Since our last ecosystem update in December, there have been a few new libraries and Unison tooling updates for you to check out.

Unison codebase manager M4i release

Version M4i of Unison is now available for download. Check out the upgrade or install directions to get this release.

We're very grateful to Unison teammate Travis Staton for implementing Unison's pattern match typechecker, which shipped with this version.

No more will your program spuriously fail at runtime because you forgot one of your cases in a pattern match. Instead you'll get a nice compile-time error.

-- This will now fail to typecheck
  match (Some 5) with
    None -> 0

Multi-line string literals have also landed with this release. They're introduced by triple quotation marks. Go ahead and enjamb those poems, or just write some nicely formatted long strings.

_multiLine
""" I write, erase, rewrite Erase again, and then A poppy blooms. - Katsushika Hokusai """

Syntax highlighting for Unison

For your front-end Unison syntax highlighting needs, Runar has written a highlight.js implementation for Unison code. Check it out here. Instructions for including the package are in the README. Once loaded, your fenced codeblocks starting with ``` unison will receive the appropriate highlighting. We hope to see your blog posts and websites using this package soon!

Library updates

XML parsing in Unison

That's right, the early aughts called and they want their favorite data exchange format back! 😎

We were writing a S3 Client in Unison (see below) when we realized it actually uses XML. Thus an XML library was born. 🐣 That's good news for all you folks writing SOAP apis! Thanks to Runar, Unison has published this library for XML parsing.

The docs for the library are fantastic, check out the Atom feed parsing example in the docs for the Soup type.

Amazon Web Services SDK in Unison

Work is underway to create an AWS SDK for Unison. The first AWS offering that we have targeted for integration is the backbone of the internet's data, AWS S3. For folks who have not had the pleasure of working with AWS, S3 is a simple object data store. Your data is stored as in versioned, time-stamped file-like "objects" in buckets for easy retrieval. In the library so far, you can put objects, get objects, and list buckets, but more is on the way.

3D printing and CNC machines

Unison community member Alvaro Carrasco has written a library for parsing GCode for 3D printing and CNC machines. It's hosted here on Unison Share. GCode is a simple language for controlling 3D printers and CNC machines. The readme contains a few example of the kinds of operations that machines that use this data format can perform, so if you'd like to, for example, 3D print a Unison logo widget with Unison code, give it a try and let us know how it goes. 🤖

Visualizing remote computations

This library got a little write-up earlier this month in the Unison blog. You'll likely see more of these diagrams as we continue to explore the possibilities of Unison distributed programs.

Have a library idea?

Come talks to us in the #libraries channel in the Unison slack. We want to help you get started! 🌷