From b85d76db3e17188ee73d5c0455e8b1976ce9a5cc Mon Sep 17 00:00:00 2001 From: eltrac Date: Sun, 20 Sep 2026 15:55:47 +0800 Subject: clj: finish clojure wrapper of wasm add README.md --- src/mf2clj/core.clj | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/mf2clj/core.clj (limited to 'src') diff --git a/src/mf2clj/core.clj b/src/mf2clj/core.clj new file mode 100644 index 0000000..8d655b1 --- /dev/null +++ b/src/mf2clj/core.clj @@ -0,0 +1,19 @@ +(ns mf2clj.core + (:require [clojure.java.io :as io]) + (:import [org.extism.sdk.chicory Manifest ManifestWasm Plugin] + [java.nio.charset StandardCharsets])) + +(defn- manifest-from-wasm [wasm] + (Manifest/ofWasms (into-array ManifestWasm [wasm]))) + +(def plugin + (-> "mf2go.wasm" io/resource io/input-stream .readAllBytes + ManifestWasm/fromBytes .build + manifest-from-wasm .build + Plugin/ofManifest .build)) + +(defn parse [html-string] + (let [charset StandardCharsets/UTF_8 + html-bytes (.getBytes html-string charset)] + (String. (.call plugin "parse" html-bytes) charset))) + -- cgit v1.2.3