Hi Pulumi Community,
We're building a Scala SDK for Pulumi (codename: Besom) at VirtusLab, the company behind Scala 3, and it's getting into shape quickly. Our main goals are to a) make Pulumi accessible for all Scala developers via tight integration with core language tooling and b) make things as type-safe and pleasant to use as possible. Here's a sneak peek via Asciinema at how it looks like at the moment:
https://asciinema.org/a/591747
We are currently working on getting provider libraries built and published and also, using awesome metaprogramming facilities of Scala 3, on Pulumi
Magic Lambda support. We have a prototype of native AWS lambdas with an AWS SDK support running in sub-15ms execution times and are currently working on integrating this into Besom to bring a new dimension to serverless development via Pulumi.
Our estimate for first beta availability (and also open access to the source repository) is around the end of June and start of July. There's obviously still a lot of work to do to polish the user experience and make it even more type-safe, ergonomic and easy to use. Our implementation makes it possible to support purely functional programming stacks that are quite popular in Scala (Cats-Effect, ZIO) but we have plans to support eager evaluation semantics too (so, basically the usual execution semantics of Pulumi).
I have announced this before on Lambda Days 2023 conference and yesterday in chat on Pulumi UP but this is the first time it's being mentioned here on Slack :)
It's probably the first community-driven SDK* and we've gathered some insight while building it. We like to share and give back to the community that is supporting this majestic infra-as-code tool so if you are interested in learning about how we built this (there's no runtime reflection in our code, Scala can be used as a compile-time reflected language only and that's exactly what we do!), give me a shout here or via email -
lbialy@virtuslab.com. We can help you understand the basics of our architecture and maybe that will lead to some spin-offs like Pulumi-rust?
P.S.: My friend from VirtusLab,
@steep-minister-28895 asked me to mention that Besom is probably the first top-to-bottom community-driven SDK for Pulumi as his team built Pulumi-Kotlin before us (
https://github.com/VirtuslabRnD/pulumi-kotlin) 😉