livebook/elixirkit
2025-02-12 00:22:24 +01:00
..
demo Add scripts to build the dmg for the Demo app 2023-05-05 11:11:22 +02:00
elixirkit_dotnet Don't create duplicate log lines on Windows (#2668) 2024-06-21 16:14:10 +02:00
elixirkit_swift Fix setting CFBundleVersion, closes #2699 2024-07-04 00:33:40 +02:00
lib Defer distribution boot in releases (#2648) 2024-06-13 18:03:28 +02:00
otp_bootstrap Set ulimit when bootstrapping otp 2025-02-12 00:22:24 +01:00
test Rebuild Livebook Desktop (#1641) 2023-01-16 21:09:47 +01:00
.formatter.exs Rebuild Livebook Desktop (#1641) 2023-01-16 21:09:47 +01:00
.gitignore Rebuild Livebook Desktop (#1641) 2023-01-16 21:09:47 +01:00
mix.exs Rebuild Livebook Desktop (#1641) 2023-01-16 21:09:47 +01:00
README.md Add basic ElixirKit readme (#2930) 2025-02-11 19:06:28 +01:00

ElixirKit

ElixirKit helps running Elixir alongside native desktop applications on macOS and Windows.

🚧 ElixirKit is experimental and subject to change without notice.

See demo project, in particular demo/lib/demo.ex, demo/rel/appkit, and 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