# Nyash Configuration File v2 # マルチBox型プラグイン対応 [libraries] # ライブラリ定義(1つのプラグインで複数のBox型を提供可能) [libraries."libnyash_filebox_plugin.so"] boxes = ["FileBox"] path = "./plugins/nyash-filebox-plugin/target/release/libnyash_filebox_plugin.so" [libraries."libnyash_counter_plugin.so"] boxes = ["CounterBox"] path = "./plugins/nyash-counter-plugin/target/release/libnyash_counter_plugin.so" [libraries."libnyash_net_plugin.so"] boxes = ["HttpServerBox", "HttpClientBox", "HttpResponseBox", "HttpRequestBox", "SocketServerBox", "SocketClientBox", "SocketConnBox"] path = "./plugins/nyash-net-plugin/target/release/libnyash_net_plugin.so" # FileBoxの型情報定義 [libraries."libnyash_filebox_plugin.so".FileBox] type_id = 6 [libraries."libnyash_filebox_plugin.so".FileBox.methods] birth = { method_id = 0 } open = { method_id = 1, args = ["path", "mode"] } read = { method_id = 2 } write = { method_id = 3, args = ["data"] } close = { method_id = 4 } fini = { method_id = 4294967295 } copyFrom = { method_id = 7, args = [ { kind = "box", category = "plugin" } ] } cloneSelf = { method_id = 8 } [libraries."libnyash_counter_plugin.so".CounterBox] type_id = 7 singleton = true [libraries."libnyash_counter_plugin.so".CounterBox.methods] birth = { method_id = 0 } inc = { method_id = 1 } get = { method_id = 2 } fini = { method_id = 4294967295 } # HttpServerBox [libraries."libnyash_net_plugin.so".HttpServerBox] type_id = 20 [libraries."libnyash_net_plugin.so".HttpServerBox.methods] birth = { method_id = 0 } start = { method_id = 1, args = ["port"], returns_result = true } stop = { method_id = 2, returns_result = true } accept = { method_id = 3, returns_result = true } fini = { method_id = 4294967295 } # HttpClientBox [libraries."libnyash_net_plugin.so".HttpClientBox] type_id = 23 [libraries."libnyash_net_plugin.so".HttpClientBox.methods] birth = { method_id = 0 } get = { method_id = 1, args = ["url"], returns_result = true } post = { method_id = 2, args = ["url", "body"], returns_result = true } fini = { method_id = 4294967295 } # HttpResponseBox [libraries."libnyash_net_plugin.so".HttpResponseBox] type_id = 22 [libraries."libnyash_net_plugin.so".HttpResponseBox.methods] birth = { method_id = 0 } setStatus = { method_id = 1, args = ["status"] } setHeader = { method_id = 2, args = ["key", "value"] } write = { method_id = 3, args = ["body"] } readBody = { method_id = 4 } getStatus = { method_id = 5 } getHeader = { method_id = 6, args = ["key"] } fini = { method_id = 4294967295 } # HttpRequestBox [libraries."libnyash_net_plugin.so".HttpRequestBox] type_id = 21 [libraries."libnyash_net_plugin.so".HttpRequestBox.methods] birth = { method_id = 0 } path = { method_id = 1 } readBody = { method_id = 2 } respond = { method_id = 3, args = [{ kind = "box", category = "plugin" }] } fini = { method_id = 4294967295 } # SocketServerBox [libraries."libnyash_net_plugin.so".SocketServerBox] type_id = 30 [libraries."libnyash_net_plugin.so".SocketServerBox.methods] birth = { method_id = 0 } bind = { method_id = 1, args = ["port"] } accept = { method_id = 2 } fini = { method_id = 4294967295 } # SocketClientBox [libraries."libnyash_net_plugin.so".SocketClientBox] type_id = 32 [libraries."libnyash_net_plugin.so".SocketClientBox.methods] birth = { method_id = 0 } connect = { method_id = 1, args = ["host", "port"] } send = { method_id = 2, args = ["data"] } receive = { method_id = 3 } close = { method_id = 4 } fini = { method_id = 4294967295 } # SocketConnBox [libraries."libnyash_net_plugin.so".SocketConnBox] type_id = 31 [libraries."libnyash_net_plugin.so".SocketConnBox.methods] birth = { method_id = 0 } send = { method_id = 1, args = ["data"] } recv = { method_id = 2 } close = { method_id = 3 } fini = { method_id = 4294967295 } [plugin_paths] # プラグインの検索パス(デフォルト) search_paths = [ "./target/release", "./target/debug", "./plugins/*/target/release", "./plugins/*/target/debug", "/usr/local/lib/nyash/plugins", "~/.nyash/plugins" ]