I've been looking at creating a pulumi package for...
# package-authoring
w
I've been looking at creating a pulumi package for the registry to share my efforts with others - so far I've just been creating dynamic providers in Typescript within the scope of our project that needs it. Could anyone point me to some good examples of a custom native resource package written in Typescript? The package template on GitHub seems entirely geared towards Golang, not TS.
f
So... golang is the only officially supported language for native pulumi providers right now. If you're talking about a component package, that is possible in TS. See https://github.com/pulumi/pulumi-component-provider-ts-boilerplate
w
Ah that’s disappointing. I’m referring to native - I’m building support for additional cloud services not currently supported. All of the marketing/docs pages seemed to indicate, write once in any language, and use in any language. Does this reflect a future vision for Pulumi, rather than what’s actually possible today?
f
I can't speak to specifics, but in general Pulumi is always improving and takes feedback from the community and customers seriously. Is there something specific that you've found missing when developing your dynamic provider? e.g. you want the multi-language component (MLC) experience with TS -> go, dotnet, python, etc? performance issues? missing functionality?
m
@wonderful-motorcycle-58005 it is technically possible to write a provider in any language. Providers are just standalone binaries with with a defined grpc interface. There's even a very barebones SDK for writting a provider in typescript here: pulumi/sdk/nodejs/provider/server.ts at 94c89b737b207b5e71c48800e2ea2c4e7c5654fd · pulumi/pulumi However, we would strongly recommend using go for new native providers at the moment; the https://github.com/pulumi/pulumi-go-provider/ SDK is far more complete than the SDKs for any other languages so you'll generally have a much easier time there. There's nothing stopping you though if you want to blaze the trail in typescript though.
☝️ 1
w
Thanks. Yeah I was just hoping to easily translate my efforts to support resources with a cloud service not currently in the Pulumi registry with others! I don't think I'm ready to invest significantly more effort just to make it available through proper channels. At a minimum I could still publish my work as an npm package that people can use if its helpful to them (as dynamic providers)