Skip to main content
Docs: ApiGear Core

ObjectLink REPL

The apigear olink command starts an interactive REPL (Read-Eval-Print Loop) for testing the ObjectLink protocol. It provides a command-line interface to connect to ObjectLink servers, link to remote objects, invoke methods, set properties, and observe signals.

Overview​

ObjectLink is an IPC protocol that enables linking local objects to remote objects over network connections. The REPL allows developers to interactively test and debug ObjectLink implementations by providing direct access to the protocol's core operations.

Usage​

Start the ObjectLink REPL:

apigear olink

or using the alias:

apigear ol

REPL Commands​

Once the REPL is started, you can use various commands to interact with ObjectLink servers. All commands support aliases for faster typing.

Connection Management​

Connect to a server:

> connect

Connects to the default WebSocket server at ws://localhost:5555/ws.

> connect ws://localhost:8080/ws

Connects to a custom WebSocket server.

Disconnect:

> disconnect

Disconnects from the current server.

Object Operations​

Link to a remote object:

> link demo.Counter

Links to the demo.Counter object on the remote server.

Get object properties:

> get demo.Counter

Retrieves all properties of the linked object.

Set a property:

> set demo.Counter/count 10

Sets the count property of demo.Counter to 10.

Invoke a method:

> invoke demo.Counter/increment

Calls the increment method without arguments.

> invoke demo.Calculator/add 3 7

Calls the add method with arguments [3, 7].

Unlink from an object:

> unlink demo.Counter

Unlinks from the demo.Counter object.

Utility Commands​

Show connection status:

> info

Displays current connection and object registry status.

Get help:

> help

Shows all available commands.

> help connect

Shows detailed help for the connect command.

Exit the REPL:

> quit

Exits the ObjectLink REPL.

Example Session​

Here's a complete example session demonstrating typical ObjectLink REPL usage:

$ apigear olink
ObjectLink REPL started. Type 'help' for available commands.

> connect
Connected to ws://localhost:5555/ws

> link demo.Counter
Linked to demo.Counter

> get demo.Counter
demo.Counter: {"count": 0}

> invoke demo.Counter/increment
Method invoked successfully

> get demo.Counter
demo.Counter: {"count": 1}

> set demo.Counter/count 5
Property set successfully

> invoke demo.Counter/increment
Method invoked successfully

> get demo.Counter
demo.Counter: {"count": 6}

> unlink demo.Counter
Unlinked from demo.Counter

> quit
Goodbye!

Command Aliases​

Most commands have short aliases for convenience:

  • c = connect
  • d = disconnect
  • s = serve
  • l = link
  • u = unlink
  • g = get
  • i = invoke
  • h = help
  • q = quit

Protocol Features​

The ObjectLink REPL supports all core ObjectLink protocol features:

  • Properties: Reactive and synchronized between local and remote objects
  • Operations: Request/response communication for method calls
  • Signals: Event notifications from remote objects to local clients
  • Modules: Namespace organization for objects
  • Lifecycle Management: Link/unlink operations for object relationships

Use Cases​

The ObjectLink REPL is particularly useful for:

  • Development: Testing ObjectLink implementations during development
  • Debugging: Diagnosing issues with ObjectLink communication
  • Learning: Understanding ObjectLink protocol behavior
  • Integration Testing: Verifying client-server interactions