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