November 1st, 2024

XTP: Make Squishy Software

Dylibso's XTP platform enables users to create custom plugins for applications, utilizing WebAssembly for secure code execution. It offers free and paid plans, supporting multiple programming languages to enhance software extensibility.

Read original articleLink Icon
XTP: Make Squishy Software

XTP, a new platform launched by Dylibso, aims to enhance software extensibility by allowing end-users to create custom plugins that adapt applications to their specific needs. This beta version, announced by CEO Steve Manuel, enables users to run their code securely within applications, offering near-native performance and a straightforward programming model. Inspired by Cloudflare's JavaScript edge platform, XTP allows developers to define extension points in their applications using an OpenAPI-format schema, facilitating the integration of user-generated plugins. The platform supports multiple programming languages, including TypeScript, Go, and Rust, with more on the way. XTP prioritizes security by utilizing WebAssembly (Wasm) to run user code in isolated environments, ensuring safety and efficiency. The platform offers a free plan for initial experimentation, with Pro and Enterprise plans available for scaling up. XTP aims to reduce customer churn by empowering users to customize their experience, reclaiming control of product roadmaps, and enabling deeper integrations beyond traditional APIs. The platform is designed to foster innovation while allowing developers to focus on core functionalities.

- XTP allows users to create custom plugins for software applications.

- The platform uses WebAssembly for secure execution of user code.

- It offers a free plan for initial use, with paid plans for larger implementations.

- XTP aims to reduce churn by enabling user-driven customization.

- The platform supports multiple programming languages for plugin development.

Link Icon 4 comments
By @nilslice - 6 months
While I was at Cloudflare, I loved working on the Workers platform. Their decision to embed a programmable layer into the CDN has transformed the company into something far bigger.

This made me realize that every app should be extensible as deeply as possible - going beyond HTTP APIs and Webhooks.

Today, we've opened up our platform making it simple to bring next-generation extensibility to your application & safely execute end-user code in-process.

I believe we've all faced the desire to run user code, and as modern products become increasingly engrained in our workflows and stacks, this desire is stronger than ever. XTP makes it safe and easy to do this leveraging the power of WebAssembly. On top of this secure core, XTP provides authorization, code uploading, testing, simulation & validation, as well as easy to use SDKs to load and execute user code.

We're excited to open up this platform in public beta & are eager for your feedback!

By @SushiHippie - 6 months
Congrats, I do really like the idea and especially the slogan!

Would recommend to explain the following terms on the landing page more thorughly:

25 Members 5 Apps 300 Authorized Guests 25 Extension Points 3k simulation runs

I would guess Members would be employees from my company who have access configure XTP and Guests would be the number of customer logins? And simulation runs is also self explanatory after reading the article, but I can't figure out what "Extension Points" and "Apps" could mean.

After looking further down the page I noticed that parts(?) of XTP are open source, now I'm more interested! How much does XTP differ from extism?

By @Kinrany - 6 months
Reminds me of an idea: instead of having lots of orthogonal endpoints or using GraphQL, accept WASM modules as requests and provide the service as functions in the WASM environment.
By @cube2222 - 6 months
Cool idea!

FWIW, when experimenting with stuff like that, I never had a good experience with WASM. It might be nice for “traditionally compiled” languages, but for stuff like JS or Python (which is what you’d usually like to expose to users, rather than C++) it’s not that great of an experience, and at least for JS the runtimes aren’t compatible with common JS runtimes.

What I think is a bunch more promising in this area is Deno[0], which is a fully sandboxed-by-default JavaScript runtime, and as of Deno 2.0 recently is also compatible with Node APIs.

Based on the logos on their Subhosting[1] product landing page, they even seem to have a couple major companies using it for this very purpose.

[0]: https://deno.com/

[1]: https://deno.com/subhosting