First of all a few questions have to be answered, defining what the ARX server should be able to do and what it is not supposed to handle.
should allow sporadic connections like http
should allow permanent connections like ftp
both connection types have to be handled simultanously by one running instance
a server instance is able to serve multiple libraries
every library is made public with a unique identifier
both connection types can be used to gain full hold of a library, e.g. you can get
library header
item header
item structure
item data
the protocol must support getting and setting of multiple data with a single instruction
this is done in a general way with getter and setter vectors
the server supports two access levels
read-only access
read/write access
anonymous access is possible and does not require anonymous authentication
this implicitely requires that the server accepts any connection
hence the authentication is only probed once the client performs a read or write operation
authentication is implemented via the PAM library
authentication can be set per user and per library
as the first application arxd will be configurable via an ARX archive (/etc/arxd/arxd.arx)
the arx-server can be run in daemon mode
the port used by the arx-server can be changed via configuration
Currently it has to be everything.