-
Notifications
You must be signed in to change notification settings - Fork 100
/
extism.mli
105 lines (84 loc) · 2.23 KB
/
extism.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
type t
type error = [ `Msg of string ]
val extism_version : unit -> string
module Manifest : sig
type memory = { max_pages : int option } [@@deriving yojson]
type wasm_file = {
path : string;
name : string option; [@yojson.option]
hash : string option; [@yojson.option]
}
type wasm_data = {
data : string;
name : string option; [@yojson.option]
hash : string option; [@yojson.option]
}
type wasm_url = {
url : string;
headers : (string * string) list option; [@yojson.option]
name : string option; [@yojson.option]
meth : string option; [@yojson.option] [@key "method"]
hash : string option; [@yojson.option]
}
type wasm = File of wasm_file | Data of wasm_data | Url of wasm_url
type config = (string * (string option)) list
type t = {
wasm : wasm list;
memory : memory option;
config : config option;
allowed_hosts : string list option;
}
val file : ?name:string -> ?hash:string -> string -> wasm
val data : ?name:string -> ?hash:string -> string -> wasm
val url :
?headers:(string * string) list ->
?name:string ->
?meth:string ->
?hash:string ->
string ->
wasm
val v :
?config:config ->
?memory:memory ->
?allowed_hosts:string list ->
wasm list ->
t
val json : t -> string
val with_config : t -> config -> t
end
module Context : sig
type t
val create : unit -> t
val free : t -> unit
val reset : t -> unit
end
val with_context : (Context.t -> 'a) -> 'a
val set_log_file :
?level:[ `Error | `Warn | `Info | `Debug | `Trace ] -> string -> bool
val plugin :
?config:(string * string option) list ->
?wasi:bool ->
Context.t ->
string ->
(t, [ `Msg of string ]) result
val of_manifest :
?wasi:bool ->
Context.t ->
Manifest.t ->
(t, [ `Msg of string ]) result
val update :
t ->
?config:(string * string option) list ->
?wasi:bool ->
string ->
(unit, [ `Msg of string ]) result
val update_manifest :
t ->
?wasi:bool ->
Manifest.t ->
(unit, [ `Msg of string ]) result
val call_bigstring :
t -> name:string -> Bigstringaf.t -> (Bigstringaf.t, error) result
val call : t -> name:string -> string -> (string, error) result
val free : t -> unit
val function_exists : t -> string -> bool