The Node.js packages documented here are used together as a platform to build custom full-stack JavaScript web applications.
Starting from the bottom of the stack, the ARCcore package is a collection of generic libraries for storing and processing in-memory directed graph datasets (ARCcore.graph), validating and normalizing intra-subsystem and inter-process data messages (ARCcore.filter), routing run-time data messages (ARCcore.discriminator), and generating random and digest hash identifiers from run-time data (ARCcore.identifier). ARCcore additionally contains less-often used utility libraries ARCcore.util and ARCcore.types libraries.
The Hrequest package is an ARCcore.filter-derived HTTP client for use in Node.js and browser applications that provides strong validation, and normalization of HTTP request and response messages. Hrequest is useful for building client-side AJAX messaging systems, implementing back-end communication channels with other HTTP servers (e.g. 3rd-party API's), and building client access packages for clients of your custom API's. This application leverages Hrequest in the client to communicate with the back-end Holism app server using shared filter specifications.
The Holism package is a JSON-configurable HTTP application server for Node.js built with ARCcore.filter that exposes an application-specific functional extension model based on ARCcore.filter-derived service plug-ins. Concerns common to most web applications such as user/session management, and dynamic server-side rendering of HTML that directly impact the functionality of application-specific plug-in services are modeled as required services called integrations.
The Holistic package is a collection of re-usable features and plug-in extensions for Holism that provides server-side HTML document rendering via Facebook's React, user and session management via RedisLab's Redis, and an evolving content management system based on linked JSON documents managed by the ARCcore/graph library.