Add http_driver from syndicate-nim
This commit is contained in:
parent
1f099d6bd2
commit
d40c29ecad
3
Tupfile
3
Tupfile
|
@ -1,2 +1,3 @@
|
||||||
include_rules
|
include_rules
|
||||||
: lock.json |> !nim_cfg |> | ./<lock>
|
: |> !nim_lk |> {lockfile}
|
||||||
|
: {lockfile} |> !nim_cfg |> | ./<lock>
|
||||||
|
|
|
@ -26,6 +26,10 @@ UnixAddress = <unix @path string>.
|
||||||
|
|
||||||
SocketAddress = TcpAddress / UnixAddress .
|
SocketAddress = TcpAddress / UnixAddress .
|
||||||
|
|
||||||
|
HttpDriverArguments = <http-driver {
|
||||||
|
dataspace: #:any
|
||||||
|
}>.
|
||||||
|
|
||||||
JsonSocketTranslatorArguments = <json-socket-translator {
|
JsonSocketTranslatorArguments = <json-socket-translator {
|
||||||
dataspace: #:any
|
dataspace: #:any
|
||||||
socket: SocketAddress
|
socket: SocketAddress
|
||||||
|
|
|
@ -2,9 +2,11 @@
|
||||||
|
|
||||||
pkgs.buildNimPackage {
|
pkgs.buildNimPackage {
|
||||||
name = "syndicate_utils";
|
name = "syndicate_utils";
|
||||||
propagatedNativeBuildInputs = [ pkgs.pkg-config ];
|
propagatedNativeBuildInputs =
|
||||||
propagatedBuildInputs =
|
builtins.attrValues { inherit (pkgs) pkg-config solo5; };
|
||||||
[ pkgs.postgresql pkgs.sqlite pkgs.libxml2 pkgs.libxslt ];
|
propagatedBuildInputs = builtins.attrValues {
|
||||||
|
inherit (pkgs) getdns postgresql solo5 sqlite libxml2 libxslt;
|
||||||
|
};
|
||||||
lockFile = ./lock.json;
|
lockFile = ./lock.json;
|
||||||
src = pkgs.lib.sources.cleanSource ./.;
|
src = pkgs.lib.sources.cleanSource ./.;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,12 @@ type
|
||||||
XsltArguments* {.preservesRecord: "xslt".} = object
|
XsltArguments* {.preservesRecord: "xslt".} = object
|
||||||
`field0`*: XsltArgumentsField0
|
`field0`*: XsltArgumentsField0
|
||||||
|
|
||||||
|
HttpDriverArgumentsField0* {.preservesDictionary.} = object
|
||||||
|
`dataspace`* {.preservesEmbedded.}: EmbeddedRef
|
||||||
|
|
||||||
|
HttpDriverArguments* {.preservesRecord: "http-driver".} = object
|
||||||
|
`field0`*: HttpDriverArgumentsField0
|
||||||
|
|
||||||
WebhooksArgumentsField0* {.preservesDictionary.} = object
|
WebhooksArgumentsField0* {.preservesDictionary.} = object
|
||||||
`endpoints`*: Table[seq[string], EmbeddedRef]
|
`endpoints`*: Table[seq[string], EmbeddedRef]
|
||||||
`listen`*: Tcp
|
`listen`*: Tcp
|
||||||
|
@ -116,6 +122,7 @@ proc `$`*(x: WebsocketArguments | JsonTranslatorArguments | SocketAddress |
|
||||||
JsonTranslatorConnected |
|
JsonTranslatorConnected |
|
||||||
JsonSocketTranslatorArguments |
|
JsonSocketTranslatorArguments |
|
||||||
XsltArguments |
|
XsltArguments |
|
||||||
|
HttpDriverArguments |
|
||||||
WebhooksArguments |
|
WebhooksArguments |
|
||||||
FileSystemUsageArguments |
|
FileSystemUsageArguments |
|
||||||
SqliteArguments |
|
SqliteArguments |
|
||||||
|
@ -134,6 +141,7 @@ proc encode*(x: WebsocketArguments | JsonTranslatorArguments | SocketAddress |
|
||||||
JsonTranslatorConnected |
|
JsonTranslatorConnected |
|
||||||
JsonSocketTranslatorArguments |
|
JsonSocketTranslatorArguments |
|
||||||
XsltArguments |
|
XsltArguments |
|
||||||
|
HttpDriverArguments |
|
||||||
WebhooksArguments |
|
WebhooksArguments |
|
||||||
FileSystemUsageArguments |
|
FileSystemUsageArguments |
|
||||||
SqliteArguments |
|
SqliteArguments |
|
||||||
|
|
|
@ -9,6 +9,7 @@ import ./syndesizer/[
|
||||||
base64_decoder,
|
base64_decoder,
|
||||||
cache_actor,
|
cache_actor,
|
||||||
file_system_usage,
|
file_system_usage,
|
||||||
|
http_driver,
|
||||||
json_socket_translator,
|
json_socket_translator,
|
||||||
json_translator,
|
json_translator,
|
||||||
pulses,
|
pulses,
|
||||||
|
@ -20,6 +21,7 @@ runActor("syndesizer") do (turn: var Turn):
|
||||||
discard spawnBase64Decoder(turn, ds)
|
discard spawnBase64Decoder(turn, ds)
|
||||||
discard spawnCacheActor(turn, ds)
|
discard spawnCacheActor(turn, ds)
|
||||||
discard spawnFileSystemUsageActor(turn, ds)
|
discard spawnFileSystemUsageActor(turn, ds)
|
||||||
|
discard spawnHttpDriver(turn, ds)
|
||||||
discard spawnJsonSocketTranslator(turn, ds)
|
discard spawnJsonSocketTranslator(turn, ds)
|
||||||
discard spawnJsonStdioTranslator(turn, ds)
|
discard spawnJsonStdioTranslator(turn, ds)
|
||||||
discard spawnPulseActor(turn, ds)
|
discard spawnPulseActor(turn, ds)
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
# SPDX-FileCopyrightText: ☭ Emery Hemingway
|
||||||
|
# SPDX-License-Identifier: Unlicense
|
||||||
|
|
||||||
|
## Thin wrapper over `syndicate/drivers/http_driver`.
|
||||||
|
|
||||||
|
import pkg/preserves, pkg/syndicate
|
||||||
|
import pkg/syndicate/drivers/http_driver
|
||||||
|
import pkg/taps
|
||||||
|
import ../schema/config
|
||||||
|
|
||||||
|
proc spawnHttpDriver*(turn: var Turn; ds: Cap): Actor {.discardable.}=
|
||||||
|
http_driver.spawnHttpDriver(turn, ds)
|
||||||
|
during(turn, ds, ?:HttpDriverArguments) do (ds: Cap):
|
||||||
|
http_driver.spawnHttpDriver(turn, ds)
|
||||||
|
|
||||||
|
when isMainModule:
|
||||||
|
import syndicate/relays
|
||||||
|
|
||||||
|
when defined(solo5):
|
||||||
|
import solo5
|
||||||
|
acquireDevices([("eth0", netBasic)], netAcquireHook)
|
||||||
|
|
||||||
|
proc envRoute: Route =
|
||||||
|
var pr = parsePreserves $solo5_start_info.cmdline
|
||||||
|
if result.fromPreserves pr:
|
||||||
|
return
|
||||||
|
elif pr.isSequence:
|
||||||
|
for e in pr:
|
||||||
|
if result.fromPreserves e:
|
||||||
|
return
|
||||||
|
quit("failed to parse command line for route to Syndicate gatekeeper")
|
||||||
|
|
||||||
|
runActor("main") do (turn: var Turn):
|
||||||
|
let ds = newDataspace(turn)
|
||||||
|
spawnRelays(turn, ds)
|
||||||
|
resolve(turn, ds, envRoute(), spawnHttpDriver)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
runActor("main") do (turn: var Turn):
|
||||||
|
resolveEnvironment(turn) do (turn: var Turn; ds: Cap):
|
||||||
|
spawnHttpDriver(turn, ds)
|
|
@ -0,0 +1,2 @@
|
||||||
|
define:ipv6Enabled
|
||||||
|
include:"std/assertions"
|
Loading…
Reference in New Issue