Luau Bindings — gossip

The require("gossip") script API — the trusted social mesh: an Ed25519 identity, a friend graph, and signed peer-to-peer messaging and transfer. Every function is [antos]. Design & native core: antos_gossip; the full model is the Gossip subsystem doc.

local gossip = require("gossip")
gossip.start()
print("I am", gossip.node_id())          -- my 64-char hex identity
gossip.send_text(peer_id, "hello mesh")

The first call latches readiness (keypair + DB schema load) — near-instant. All state persists in DBFS SQLite.

Identity

Function Behaviour
gossip.node_id() This node's identity — a 64-char hex Ed25519 public key.
gossip.get_identity() · gossip.set_identity(...) Read / set the node identity.
gossip.export_seed() · gossip.import_seed(seed) Back up / restore the identity seed. Guard it — the seed is the node.

Mesh control

Function Behaviour
gossip.start() Start the mesh engine.
gossip.stats() · gossip.info() Mesh statistics / node info.
gossip.discover() Trigger LAN discovery (signed UDP broadcast).
gossip.broadcast_addr() The broadcast address in use.
gossip.probe(node) · gossip.ping(node) · gossip.latency(node) Reachability.
gossip.add_node(...) Manually add a known node.
gossip.debug_nodes() · gossip.debug_msgs() · gossip.xfer_diag() Diagnostics.

The friend graph

Function Behaviour
gossip.friend(node) Send a friend request.
gossip.requests() Pending incoming requests.
gossip.accept(node) · gossip.decline(node) · gossip.undecline(node) Respond.
gossip.unfriend(node) · gossip.block(node) · gossip.unblock(node) Manage.
gossip.friends() · gossip.blocked() · gossip.declined() Enumerate the graph.

Friend-of-friend introductions

Function Behaviour
gossip.introduce(a, b) Introduce two of your friends to each other.
gossip.request_introduced(...) Ask to be introduced.
gossip.introduced() · gossip.discovered() Who's been introduced / discovered.
gossip.allow_intro(on) · gossip.get_allow_intro() Control whether you're introducible.

Messaging

Function Behaviour
gossip.send_text(node, text) Send plain text.
gossip.send_json(node, value) Send a structured value.
gossip.send_blob(node, bytes) · gossip.send_data(node, ...) Send arbitrary bytes.
gossip.send_text_relay(node, text) Send text via a mutual friend when there's no direct path.
gossip.send_game_event(node, ev) · gossip.send_game_state(node, st) Game transport — events / state.
gossip.messages() · gossip.clear_messages() Read / clear the inbox.

Files go over the mesh too — xfer.gossip(node_id) runs an X/Y/Zmodem transfer to a peer.

Related

Important: The Ant64 family of home computers are at early design/prototype stage, everything you see here is subject to change.