all repos — xrxs @ a0163016c2c5ba07b55da0c59872cc925c4cceb2

experimental networked application/game server with 9p

DESIGN (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[9p directory structure]
/ctl: control file for inputing system commands
  load CART: load a cartridge
  create REALM: create a new realm (start a new game or app session)
  protect REALM: protect the realm with auth data
  enter REALM: join an existing realm
  leave: leave the current realm
  save: save the current universe to the realm
  reset: reset the cartridge (attempts to leave the realm, but doesn't save)
  unload: unload the cartridge
  shutdown: disconnect from the xrxs server

/carts/: available game/app cartridges for this server

/realms/: open/saved realms
  realms can either be solo, open, or protected;
  open or protected realms can have limited member numbers
  depending on the cartridge, these settings can be user-managed or managed by the cartridge itself

/realm/REALM/index: realm data readable by the client before entering, eg:
  1 4 1
  first number is number of members
  second is member limit
  third is 1 if protected, 0 if not
  0 1 1 represents a protected solo realm that is empty (saved game with password)
  0 1 0 represents an unprotected solo realm that is empty (saved game with no password)
/realms/REALM/members: members of the realm
realms/REALM/allowed: allowed membernames (if empty, anyone is allowed)
realms/REALM/password: realm password
realms/REALM/universe/: universe data synced to the realm

/universe/: arbitrary game data not yet synced to the realm