diff options
| author | eltrac <hi@eltr.ac> | 2026-09-20 15:55:47 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-09-20 17:15:43 +0800 |
| commit | b85d76db3e17188ee73d5c0455e8b1976ce9a5cc (patch) | |
| tree | a0e6ef3c0a9b64f90249c751de9f4b39adbb8613 /src | |
| parent | ba6d01449539190c59f4f9793d0ab67dca777a23 (diff) | |
clj: finish clojure wrapper of wasm
add README.md
Diffstat (limited to 'src')
| -rw-r--r-- | src/mf2clj/core.clj | 19 |
1 files changed, 19 insertions, 0 deletions
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)))
+
|
