FLUORINE is to be a set of optional ARGON kernel modules that provide gateways between the entity-based world of ARGON and widespread existing protocols and data formats.
This is required to allow:
- ARGON to be used as a platform to build modern Web applications and services that can be used by standard non-ARGON users and systems.
- ARGON to use the resources and services out there on the Internet.
- Other kinds of interoperability, such as accessing FAT32 filesystems on removable media.
Without FLUORINE, even if I get all of ARGON implemented, it will never succeed - as it'll be a walled garden. That's no fun!
Note that XENON may provide some tools for non-ARGON systems to talk to ARGON, in the form of a client implementation of MERCURY and CARBON.
FLUORINE will be a set of components:
- CHROME libraries to read/write external data formats (XML, PNG/JPEG, and so on).
- NITROGEN extensions to make node entities generate persona entities for IP addresses held by the node, allowing outgoing TCP/UDP connections to be made, or transient listeners for incoming TCP/UDP connections. This should include special support for HTTP(S), including temporarily registering to handle a specific sub-path of HTTP(S) service on an arbitrary port on the node, possibly sharing that port with other HTTP(S) services via a path-based routing system. This is handy for HTTP-based callback services.
- A $FLUORINE section in an entity's state, allowing an entity to register for LITHIUM invocations in response to incoming requests via TCP or UDP to specifi ports, or via HTTP(S) to specific path prefixes on specific ports, received by any node performing computation for that entity (subject to more specific administrative configuration override).
- NITROGEN extensions to provide stateless virtual gateway entities located in the cluster volume, which use persona fields to gateway to Internet resources; the non-persona interface to the entity provides a mapping from resource names such as URLs to persona-laden EIDs to access the resources.