#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 Proton's private source-built native 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::IpcExtensionApi

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

    Creates one remote extension API descriptor.

    IpcExtensionApi::equal

    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::IpcExtensionDescriptor

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

    Creates one remote extension bridge descriptor.

    IpcExtensionDescriptor::equal

    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::IpcExtensionEvent

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

    Creates one extension event IPC frame.

    IpcExtensionEvent::equal

    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::IpcOpRequest

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

    Creates one operation request frame.

    IpcOpRequest::equal

    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