[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5663":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":46,"readmeContent":47,"aiSummary":48,"trendingCount":15,"starSnapshotCount":15,"syncStatus":49,"lastSyncTime":50,"discoverSource":51},5663,"extism","extism\u002Fextism","The framework for building with WebAssembly (wasm). Easily & securely load wasm modules, move data, call functions, and build extensible apps.","https:\u002F\u002Fextism.org",null,"Rust",5644,161,31,42,0,1,12,45,7,37.63,"BSD 3-Clause \"New\" or \"Revised\" License",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"browser","c","cpp","csharp","dotnet","elixir","go","haskell","java","javascript","node","ocaml","plugin-system","python","ruby","rust","serverless","wasm","webassembly","zig","2026-06-12 02:01:13","\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fextism.org\">\n    \u003Cpicture>\n        \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".github\u002Fassets\u002Flogo-horizontal-darkmode.png\">\n        \u003Cimg alt=\"Extism - the WebAssembly framework\" width=\"75%\" style=\"max-width: 600px\" src=\".github\u002Fassets\u002Flogo-horizontal.png\">\n    \u003C\u002Fpicture>\n    \u003C\u002Fa>\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1011124058408112148?color=%23404eed&label=Community%20Chat&logo=Discord&logoColor=%23404eed)](https:\u002F\u002Fextism.org\u002Fdiscord)\n![GitHub Org's stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fextism)\n![Downloads](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Fextism-manifest)\n![GitHub License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fextism\u002Fextism)\n![GitHub release (with filter)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fextism\u002Fextism)\n\n\u003C\u002Fdiv>\n\n# Overview\n\nExtism is a lightweight framework for building with WebAssembly (Wasm). It\nsupports running Wasm code on servers, the edge, CLIs, IoT, browsers and\neverything in between. Extism is designed to be \"universal\" in that it supports\na common interface, no matter where it runs.\n\n> **Note:** One of the primary use cases for Extism is **building extensible\n> software & plugins**. You want to be able to execute arbitrary, untrusted code\n> from your users? Extism makes this safe and practical to do.\n\nAdditionally, Extism adds some extra utilities on top of standard Wasm runtimes.\nFor example, we support persistent memory\u002Fmodule-scope variables, secure &\nhost-controlled HTTP without WASI, runtime limiters & timers, simpler host\nfunction linking, and more. Extism users build:\n\n- plug-in systems\n- FaaS platforms\n- code generators\n- web applications\n- & much more...\n\n# Supported Targets\n\nWe currently provide releases for the following targets:\n\n- aarch64-apple-darwin\n- aarch64-unknown-linux-gnu\n- aarch64-unknown-linux-musl\n- x86_64-apple-darwin\n- x86_64-pc-windows-gnu\n- x86_64-pc-windows-msvc\n- x86_64-unknown-linux-gnu\n- x86_64-unknown-linux-musl\n\nFor Android we suggest taking a look at the [Chicory SDK](https:\u002F\u002Fgithub.com\u002Fextism\u002Fchicory-sdk) for a pure Java\nExtism runtime.\n\n# Run WebAssembly In Your App\n\nPick a SDK to import into your program, and refer to the documentation to get\nstarted:\n\n| Type        | Language                                                                                       | Source Code                                                             | Package                                                                 |\n| ----------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |\n| Rust SDK    | \u003Cimg alt=\"Rust SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Frust.svg\" width=\"50px\"\u002F>         | https:\u002F\u002Fgithub.com\u002Fextism\u002Fextism\u002Ftree\u002Fmain\u002Fruntime                      | [Crates.io](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fextism)                            |\n| JS SDK      | \u003Cimg alt=\"JS SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fjs.svg\" width=\"50px\"\u002F>             | https:\u002F\u002Fgithub.com\u002Fextism\u002Fjs-sdk \u003Cbr\u002F>(supports Web, Node, Deno & Bun!) | [NPM](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@extism\u002Fextism)                     |\n| Elixir SDK  | \u003Cimg alt=\"Elixir SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Felixir.svg\" width=\"50px\"\u002F>     | https:\u002F\u002Fgithub.com\u002Fextism\u002Felixir-sdk                                    | [Hex](https:\u002F\u002Fhex.pm\u002Fpackages\u002Fextism)                                   |\n| Go SDK      | \u003Cimg alt=\"Go SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fgo.svg\" width=\"50px\"\u002F>             | https:\u002F\u002Fgithub.com\u002Fextism\u002Fgo-sdk                                        | [Go mod](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fextism\u002Fgo-sdk)                   |\n| Haskell SDK | \u003Cimg alt=\"Haskell SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fhaskell.svg\" width=\"50px\"\u002F>   | https:\u002F\u002Fgithub.com\u002Fextism\u002Fhaskell-sdk                                   | [Hackage](https:\u002F\u002Fhackage.haskell.org\u002Fpackage\u002Fextism)                   |\n| Java SDK    | \u003Cimg alt=\"Java SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fjava-android.svg\" width=\"50px\"\u002F> | https:\u002F\u002Fgithub.com\u002Fextism\u002Fjava-sdk                                      | [Sonatype](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Forg.extism.sdk\u002Fextism) |\n| .NET SDK    | \u003Cimg alt=\".NET SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fdotnet.svg\" width=\"50px\"\u002F>       | https:\u002F\u002Fgithub.com\u002Fextism\u002Fdotnet-sdk \u003Cbr\u002F>(supports C# & F#!)           | [Nuget](https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FExtism.Sdk)                      |\n| OCaml SDK   | \u003Cimg alt=\"OCaml SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Focaml.svg\" width=\"50px\"\u002F>       | https:\u002F\u002Fgithub.com\u002Fextism\u002Focaml-sdk                                     | [opam](https:\u002F\u002Fopam.ocaml.org\u002Fpackages\u002Fextism\u002F)                         |\n| Perl SDK    | \u003Cimg alt=\"Perl SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fperl.svg\" width=\"50px\"\u002F>         | https:\u002F\u002Fgithub.com\u002Fextism\u002Fperl-sdk                                      | [CPAN](https:\u002F\u002Fmetacpan.org\u002Fpod\u002FExtism)                                 |\n| PHP SDK     | \u003Cimg alt=\"PHP SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fphp.svg\" width=\"50px\"\u002F>           | https:\u002F\u002Fgithub.com\u002Fextism\u002Fphp-sdk                                       | [Packagist](https:\u002F\u002Fpackagist.org\u002Fpackages\u002Fextism\u002Fextism)               |\n| Python SDK  | \u003Cimg alt=\"Python SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fpython.svg\" width=\"50px\"\u002F>     | https:\u002F\u002Fgithub.com\u002Fextism\u002Fpython-sdk                                    | [PyPi](https:\u002F\u002Fpypi.org\u002Fproject\u002Fextism\u002F)                                |\n| Ruby SDK    | \u003Cimg alt=\"Ruby SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fruby.svg\" width=\"50px\"\u002F>         | https:\u002F\u002Fgithub.com\u002Fextism\u002Fruby-sdk                                      | [RubyGems](https:\u002F\u002Frubygems.org\u002Fgems\u002Fextism)                            |\n| Zig SDK     | \u003Cimg alt=\"Zig SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fzig.svg\" width=\"50px\"\u002F>           | https:\u002F\u002Fgithub.com\u002Fextism\u002Fzig-sdk                                       | N\u002FA                                                                     |\n| C SDK       | \u003Cimg alt=\"C SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fc.svg\" width=\"50px\"\u002F>               | https:\u002F\u002Fgithub.com\u002Fextism\u002Fextism\u002Ftree\u002Fmain\u002Flibextism                    | N\u002FA                                                                     |\n| C++ SDK     | \u003Cimg alt=\"C++ SDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fcpp.svg\" width=\"50px\"\u002F>           | https:\u002F\u002Fgithub.com\u002Fextism\u002Fcpp-sdk                                       | N\u002FA                                                                     |\n\n# Compile WebAssembly to run in Extism Hosts\n\nExtism Hosts (running the SDK) must execute WebAssembly code that has a\n[PDK, or Plug-in Development Kit](https:\u002F\u002Fextism.org\u002Fdocs\u002Fconcepts\u002Fpdk), library\ncompiled in to the `.wasm` binary. PDKs make it easy for plug-in \u002F extension\ncode authors to read input from the host and return data back, read provided\nconfiguration, set\u002Fget variables, make outbound HTTP calls if allowed, and more.\n\nPick a PDK to import into your Wasm program, and refer to the documentation to\nget started:\n\n| Type               | Language                                                                                                   | Source Code                                                   | Package                                                   |\n| ------------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------- |\n| Rust PDK           | \u003Cimg alt=\"Rust PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Frust.svg\" width=\"50px\"\u002F>                     | https:\u002F\u002Fgithub.com\u002Fextism\u002Frust-pdk                            | [Crates.io](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fextism-pdk)          |\n| JS PDK             | \u003Cimg alt=\"JS PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fjs.svg\" width=\"50px\"\u002F>                         | https:\u002F\u002Fgithub.com\u002Fextism\u002Fjs-pdk                              | N\u002FA                                                       |\n| Python PDK         | \u003Cimg alt=\"Python PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fpython.svg\" width=\"50px\"\u002F>                 | https:\u002F\u002Fgithub.com\u002Fextism\u002Fpython-pdk                          | N\u002FA                                                       |\n| Go PDK             | \u003Cimg alt=\"Go PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fgo.svg\" width=\"50px\"\u002F>                         | https:\u002F\u002Fgithub.com\u002Fextism\u002Fgo-pdk                              | [Go mod](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fextism\u002Fgo-pdk)     |\n| Haskell PDK        | \u003Cimg alt=\"Haskell PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fhaskell.svg\" width=\"50px\"\u002F>               | https:\u002F\u002Fgithub.com\u002Fextism\u002Fhaskell-pdk                         | [Hackage](https:\u002F\u002Fhackage.haskell.org\u002Fpackage\u002Fextism-pdk) |\n| AssemblyScript PDK | \u003Cimg alt=\"AssemblyScript PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fassemblyscript.svg\" width=\"50px\"\u002F> | https:\u002F\u002Fgithub.com\u002Fextism\u002Fassemblyscript-pdk                  | [NPM](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@extism\u002Fas-pdk)       |\n| .NET PDK           | \u003Cimg alt=\".NET PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fdotnet.svg\" width=\"50px\"\u002F>                   | https:\u002F\u002Fgithub.com\u002Fextism\u002Fdotnet-pdk \u003Cbr\u002F>(supports C# & F#!) | [Nuget](https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FExtism.Pdk)        |\n| C PDK              | \u003Cimg alt=\"C PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fc.svg\" width=\"50px\"\u002F>                           | https:\u002F\u002Fgithub.com\u002Fextism\u002Fc-pdk                               | N\u002FA                                                       |\n| C++ PDK            | \u003Cimg alt=\"C++ PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fcpp.svg\" width=\"50px\"\u002F>                       | https:\u002F\u002Fgithub.com\u002Fextism\u002Fcpp-pdk                             | N\u002FA                                                       |\n| Zig PDK            | \u003Cimg alt=\"Zig PDK\" src=\"https:\u002F\u002Fextism.org\u002Fimg\u002Fsdk-languages\u002Fzig.svg\" width=\"50px\"\u002F>                       | https:\u002F\u002Fgithub.com\u002Fextism\u002Fzig-pdk                             | N\u002FA                                                       |\n\n# Generating Bindings\n\nIt's often very useful to define a schema to describe the function signatures\nand types you want to use between Extism SDK and PDK languages.\n\n[XTP Bindgen](https:\u002F\u002Fgithub.com\u002Fdylibso\u002Fxtp-bindgen) is an open source\nframework to generate PDK bindings for Extism plug-ins. It's used by the\n[XTP Platform](https:\u002F\u002Fwww.getxtp.com\u002F), but can be used outside of the platform\nto define any Extism compatible plug-in system.\n\n## 1. Install the `xtp` CLI.\n\nSee installation instructions\n[here](https:\u002F\u002Fdocs.xtp.dylibso.com\u002Fdocs\u002Fcli#installation).\n\n## 2. Create a schema using our OpenAPI-inspired IDL:\n\n```yaml\nversion: v1-draft\nexports: \n  CountVowels:\n      input: \n          type: string\n          contentType: text\u002Fplain; charset=utf-8\n      output:\n          $ref: \"#\u002Fcomponents\u002Fschemas\u002FVowelReport\"\n          contentType: application\u002Fjson\n# components.schemas defined in example-schema.yaml...\n```\n\n> See an example in [example-schema.yaml](.\u002Fexample-schema.yaml), or a full\n> \"kitchen sink\" example on\n> [the docs page](https:\u002F\u002Fdocs.xtp.dylibso.com\u002Fdocs\u002Fconcepts\u002Fxtp-schema\u002F).\n\n## 3. Generate bindings to use from your plugins:\n\n```\nxtp plugin init --schema-file .\u002Fexample-schema.yaml\n  > 1. TypeScript                      \n    2. Go                              \n    3. Rust                            \n    4. Python                          \n    5. C#                              \n    6. Zig                             \n    7. C++                             \n    8. GitHub Template                 \n    9. Local Template\n```\n\nThis will create an entire boilerplate plugin project for you to get started\nwith. Implement the empty function(s), and run `xtp plugin build` to compile\nyour plugin.\n\n> For more information about XTP Bindgen, see the\n> [dylibso\u002Fxtp-bindgen](https:\u002F\u002Fgithub.com\u002Fdylibso\u002Fxtp-bindgen) repository and\n> the official\n> [XTP Schema documentation](https:\u002F\u002Fdocs.xtp.dylibso.com\u002Fdocs\u002Fconcepts\u002Fxtp-schema).\n\n# Support\n\n## Discord\n\nIf you experience any problems or have any questions, please join our\n[Discord](https:\u002F\u002Fextism.org\u002Fdiscord) and let us know. Our community is very\nresponsive and happy to help get you started.\n\n## Usage\n\nHead to the [project website](https:\u002F\u002Fextism.org) for more information and docs.\nAlso, consider reading an [overview](https:\u002F\u002Fextism.org\u002Fdocs\u002Foverview) of Extism\nand its goals & approach.\n\n## Contribution\n\nThank you for considering a contribution to Extism, we are happy to help you\nmake a PR or find something to work on!\n\nThe easiest way to start would be to join the\n[Discord](https:\u002F\u002Fextism.org\u002Fdiscord) or open an issue on the\n[`extism\u002Fproposals`](https:\u002F\u002Fgithub.com\u002Fextism\u002Fproposals) issue tracker, which\ncan eventually become an Extism Improvement Proposal (EIP).\n\nFor more information, please read the\n[Contributing](https:\u002F\u002Fextism.org\u002Fdocs\u002Fconcepts\u002Fcontributing) guide.\n\n---\n\n## Who's behind this?\n\nExtism is an open-source product from the team at:\n\n\u003Cp align=\"left\">\n  \u003Ca href=\"https:\u002F\u002Fdylibso.com\" _target=\"blanks\">\u003Cimg width=\"200px\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F7517515\u002F198204119-5afdebb9-a5d8-4322-bd2a-46179c8d7b24.svg\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n_Reach out and tell us what you're building! We'd love to help:_\n\u003Ca href=\"mailto:hello@dylibso.com\">hello@dylibso.com\u003C\u002Fa>\n","Extism 是一个用于构建 WebAssembly (Wasm) 应用的轻量级框架。它支持在服务器、边缘计算、CLI、IoT 设备和浏览器等各种环境中运行 Wasm 代码，并提供了一个通用接口，确保了跨平台的一致性。其核心功能包括对插件系统的支持，使执行任意且不受信任的用户代码变得安全可行；此外，还提供了持久内存、模块范围变量、受控HTTP请求、运行时限时器等高级特性。该框架非常适合需要构建可扩展软件及插件系统、FaaS 平台、代码生成工具或复杂 Web 应用的场景。采用 Rust 编写，开源并遵循 BSD 3-Clause 许可证，保证了项目的可靠性和安全性。",2,"2026-06-11 03:04:36","top_language"]