Sign in

    #proton/ipc

    moonbit-community/proton/ipc defines transport-neutral protocol types for Proton.

    It does not know about WebView, WebSocket, process launch, or extension code. The current root facade uses these types with the native DLL bridge.

    IpcError

    pub(all) suberror IpcError {
    MalformedJson(detail~ : String)
    InvalidPayload(kind~ : String, detail~ : String)
    UnsupportedVersion(scope~ : String, actual~ : Int, supported~ : Int)
    EmptyField(path~ : String)
    InvalidErrorResponseBody
    } derive(Eq,
    Debug
    )

    Failures while decoding or validating Proton IPC protocol values.

    IpcError::equal

    fn IpcError::equal(IpcError, IpcError) -> Bool

    IpcError::message

    fn IpcError::message(self : IpcError) -> String

    IpcError::not_equal

    fn IpcError::not_equal(x : IpcError, y : IpcError) -> Bool

    IpcError::output

    fn IpcError::output(self : IpcError, logger : &Logger) -> Unit

    IpcError::to_repr

    IpcError::to_string

    fn IpcError::to_string(self : IpcError) -> String

    IpcExtensionApi

    pub(all) struct IpcExtensionApi {
    api_name : String
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    One JavaScript-facing API exposed for a remote extension namespace.

    IpcExtensionApi::equal

    IpcExtensionApi::new

    fn IpcExtensionApi::new(api_name : String) -> IpcExtensionApi

    Creates one remote extension API descriptor.

    IpcExtensionApi::not_equal

    fn IpcExtensionApi::not_equal(x : IpcExtensionApi, y : IpcExtensionApi) -> Bool

    IpcExtensionApi::to_json

    IpcExtensionDescriptor

    pub(all) struct IpcExtensionDescriptor {
    id : String
    js_namespace : String
    apis : Array[IpcExtensionApi]
    scripts : Array[String]
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    JavaScript bridge metadata for one remote extension.

    IpcExtensionDescriptor::equal

    IpcExtensionDescriptor::new

    fn IpcExtensionDescriptor::new(id : String, js_namespace : String, apis : Array[IpcExtensionApi], scripts? : Array[String]) -> IpcExtensionDescriptor

    Creates one remote extension bridge descriptor.

    IpcExtensionDescriptor::not_equal

    IpcExtensionDescriptor::to_json

    IpcExtensionEvent

    pub(all) struct IpcExtensionEvent {
    version : Int
    extension_namespace : String
    event_name : String
    payload : Json
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    One extension event sent from the user process to JavaScript.

    IpcExtensionEvent::equal

    IpcExtensionEvent::new

    fn IpcExtensionEvent::new(extension_namespace : String, event_name : String, payload : Json) -> IpcExtensionEvent

    Creates one extension event IPC frame.

    IpcExtensionEvent::not_equal

    fn IpcExtensionEvent::not_equal(x : IpcExtensionEvent, y : IpcExtensionEvent) -> Bool

    IpcExtensionEvent::to_json

    IpcExtensionEvent::validate

    Validates one decoded extension event.

    IpcOpRequest

    pub(all) struct IpcOpRequest {
    version : Int
    id : String
    name : String
    payload : Json
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    One operation invocation sent from the JavaScript bridge to the user process.

    IpcOpRequest::equal

    IpcOpRequest::new

    fn IpcOpRequest::new(id : String, name : String, payload : Json) -> IpcOpRequest

    Creates one operation request frame.

    IpcOpRequest::not_equal

    fn IpcOpRequest::not_equal(x : IpcOpRequest, y : IpcOpRequest) -> Bool

    IpcOpRequest::stringify

    fn IpcOpRequest::stringify(self : IpcOpRequest) -> String

    Serializes an operation request as one JSON IPC payload.

    IpcOpRequest::to_json

    IpcOpRequest::validate

    fn IpcOpRequest::validate(self : IpcOpRequest) -> IpcOpRequest raise IpcError

    Validates one decoded operation request.

    IpcOpResponse

    pub(all) struct IpcOpResponse {
    version : Int
    id : String
    status : Int
    body : Json
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    One operation completion sent from the user process back to JavaScript.

    status == 0 means success. Any non-zero status means body contains a JSON string error message suitable for rejecting the JavaScript promise.

    IpcOpResponse::equal

    IpcOpResponse::err

    fn IpcOpResponse::err(id : String, message : String) -> IpcOpResponse

    Creates one failed operation response frame.

    IpcOpResponse::is_ok

    fn IpcOpResponse::is_ok(self : IpcOpResponse) -> Bool

    Returns whether this response represents success.

    IpcOpResponse::not_equal

    fn IpcOpResponse::not_equal(x : IpcOpResponse, y : IpcOpResponse) -> Bool

    IpcOpResponse::ok

    fn IpcOpResponse::ok(id : String, body : Json) -> IpcOpResponse

    Creates one successful operation response frame.

    IpcOpResponse::stringify

    fn IpcOpResponse::stringify(self : IpcOpResponse) -> String

    Serializes an operation response as one JSON IPC payload.

    IpcOpResponse::to_json

    IpcOpResponse::validate

    fn IpcOpResponse::validate(self : IpcOpResponse) -> IpcOpResponse raise IpcError

    Validates one decoded operation response.

    parse_ipc_op_request

    fn parse_ipc_op_request(raw : String) -> IpcOpRequest raise IpcError

    Parses one JSON IPC operation request.

    parse_ipc_op_response

    fn parse_ipc_op_response(raw : String) -> IpcOpResponse raise IpcError

    Parses one JSON IPC operation response.

    protocol_version

    fn protocol_version() -> Int

    Returns the protocol version used in all IPC envelopes and payloads.

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io