Skip to content

Conversation

@tlecomte
Copy link
Contributor

Expose a new method extism_compiled_plugin_new_with_fuel_limit to build a CompiledPlugin with a fuel limit.

Fixes #882

Copy link
Member

@nilslice nilslice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - fine to accept this without exposing a Rust SDK wrapper function for now until someone needs it or I have time to follow-up.

@nilslice nilslice merged commit 7230657 into extism:main Nov 25, 2025
5 checks passed
@tlecomte tlecomte deleted the compiled_fuel branch November 25, 2025 17:11
nilslice pushed a commit to extism/dotnet-sdk that referenced this pull request Dec 1, 2025
This follows extism/extism#883 and Extism
1.13.0, which allows to create a CompiledPlugin with a fuel limit.
Previously, we could only create a (non-compiled) Plugin with a fuel
limit, or a CompiledPlugin without a fuel limit.

A CompiledPlugin with a fuel limit is interesting for the scenario
where:
- the host is instantiating many times the same wasm file (for example,
a Python interpreter)
- and needs a fuel limit to ensure resource usage is controlled while
running untrusted scripts

On practical example is when using Extism to implement a Python sandbox
in a .NET host, that is exposed as a tool to an LLM chatbot embedded in
the app. The LLM can generate Python code that calls host functions or
perform calculations to fulfill the user's request.

Setting a fuel limit is important for the security of the approach,
since the executed code cannot be trusted, as it is produced by the LLM.
The fuel limit ensures that resources stay in check, along with memory
limits, time-based cancellation, and the isolation properties of WASM.

Until now, we could only use the non-compiled Plugin, since this one
exposes the fuel limit. But it makes sense to use the CompiledPlugin,
since the same wasm (the Python interpreter) is used over and over
again.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CompiledPlugin with fuel limit

2 participants