Dyalog File Server (DFS)

All versions of Dyalog include an "array store" known as the Component File system (DCF). Any APL array can be stored in a numbered "component" in a DCF file. Because arrays are stored in the internal form used by the interpreter, component files are a highly efficient mechanism. Dyalog users have used the flexibility of component files to create a wide variety of data storage mechanisms.

The Dyalog File Server (DFS) is a client/server implementation of the DCF. Particularly in multi-user situations, DFS provides a number of advantages over the DCF. For example:

  • Security: DCF files can be accessed by the client through means other than APL; for example, a DCF file can be opened with a text editor. This poses a potential security risk. The DFS removes all direct client access to the files it manages; only processes on the server side can access the files. File access matrices are strictly enforced and cannot be circumvented by the client. In addition, secure sockets can be used between the client and server processes.
  • Performance: Each DFS file is handled by a single process. As such, files are exclusively opened, index blocks are cached and no file locking is required, resulting in significantly higher throughput.
  • Operations: The DFS is managed using a web-based console which provides real-time performance reporting.
  • Recovery: The DFS recovers automatically from network problems and server restarts. As long as the client session exists, reconnection happens automatically when the server is accessible.


The DFS supports all component file functions and native file functions implemented in Dyalog. In addition, a number of features of the mainframe "SHAREFILE/AP" system have been added, such as FHIST, FWHOIS and FUSERNO. Additional utility functions for creating, deleting and removing folders and manipulating attributes of native files are also included.

View Morten Kromberg present the DFS at Dyalog '12 in Elsinore.


Please email us to enquire about DFS.

NOTE: The DFS is licenced separately from Dyalog.