2023-01-17 04:09:47 +08:00
|
|
|
# ElixirKit
|
2025-02-12 02:06:28 +08:00
|
|
|
|
|
|
|
ElixirKit helps running Elixir alongside native desktop applications on macOS and Windows.
|
|
|
|
|
|
|
|
🚧 ElixirKit is experimental and subject to change without notice.
|
|
|
|
|
|
|
|
See [demo](demo) project, in particular [demo/lib/demo.ex](demo/lib/demo.ex),
|
|
|
|
[demo/rel/appkit](demo/rel/appkit), and [demo/rel/winforms](demo/rel/winforms).
|
|
|
|
|
|
|
|
## ElixirKit for macOS (Swift)
|
|
|
|
|
|
|
|
- `ElixirKit.API.isRunning: Bool`
|
|
|
|
- Returns whether the Elixir runtime is currently running
|
|
|
|
|
|
|
|
- `ElixirKit.API.start(name: String, logPath: String?, readyHandler: () -> Void, terminationHandler: ((Process) -> Void)?) -> Void`
|
|
|
|
- Starts the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.publish(_ name: String, _ data: String) -> Void`
|
|
|
|
- Publishes an event to the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.stop() -> Void`
|
|
|
|
- Stops the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.waitUntilExit() -> Void`
|
|
|
|
- Blocks until the Elixir runtime exits
|
|
|
|
|
|
|
|
- `ElixirKit.API.addObserver(queue: OperationQueue?, using: ((String, String)) -> Void) -> Void`
|
|
|
|
- Adds an observer for events from the Elixir runtime
|
|
|
|
|
|
|
|
## ElixirKit for Windows (C#)
|
|
|
|
|
|
|
|
- `ElixirKit.API.HasExited: bool` - Indicates whether the Elixir runtime has exited
|
|
|
|
|
|
|
|
- `ElixirKit.API.IsMainInstance(string id) -> bool`
|
|
|
|
- Checks if the current app is the main instance
|
|
|
|
|
|
|
|
- `ElixirKit.API.Start(string name, ReadyHandler ready, ExitHandler? exited = null, string? logPath = null) -> void`
|
|
|
|
- Starts the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.Publish(string name, string data) -> void`
|
|
|
|
- Publishes an event to the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.Subscribe(EventHandler handler) -> void`
|
|
|
|
- Subscribes to events from the Elixir runtime
|
|
|
|
|
|
|
|
- `ElixirKit.API.Stop() -> int`
|
|
|
|
- Stops the Elixir runtime
|
|
|
|
- Returns exit code
|
|
|
|
|
|
|
|
- `ElixirKit.API.WaitForExit() -> int`
|
|
|
|
- Blocks until the Elixir runtime exits
|
|
|
|
- Returns exit code
|
|
|
|
|
|
|
|
- `ElixirKit.ReadyHandler:() -> void`
|
|
|
|
- Callback for when the runtime is ready
|
|
|
|
|
|
|
|
- `ElixirKit.ExitHandler:(int ExitCode) -> void`
|
|
|
|
- Callback for when the runtime exits
|
|
|
|
|
|
|
|
- `ElixirKit.EventHandler:(string Name, string Data) -> void`
|
|
|
|
- Callback for handling events from the runtime
|