EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Solid File System

Virtual file system engine that can be embedded into your software.

Solid File System (SolFS) is a file system implementation that can be embedded into your application or mounted as a virtual disk.

SolFS offers software architects and developers a feature-rich storage for application documents and data, and is designed for use with real media (such as Hard Drives or Flash Cards) or logical structures (files on disks, database records, application resources, and raw memory).

Clients say:

...Fast, kind with customers, effective and prompt on bugfixes...


Latest version

Release:  5.2.151
02 August 2016

Most wanted features Vote or request a feature

Technical Specification

Description

Solid File System OS Edition architecture

OS Edition consists of the system-level drivers and user-mode API.

Drivers

The drivers are virtual disk driver and file system driver. Virtual disk driver creates a virtual storage device, which emulates a physical storage. File System Driver maps SolFS file system to the virtual storage device.
The drivers work on system level (kernel-mode on Windows and a system DLL on Windows Mobile) and turn SolFS storage into a "real" disk device with its own file system. The "real disk device" is accessible in read-only and/or read-write mode by any application which uses system file management API.

The drivers offer certain features, specific to its functionality. For example, you can make the mounted disk visible to the user or hide it from the user. You can grant access to your storage to only selected applications, thus providing additional level of data security.

SolFS drivers can use either a file on existing file system or a partition on the disk as a backend media for storing information. In other words, you can format a media (partition on the disk, a flash card) as a SolFS disk. Or you can just create a file which will hold the data.
The drivers also support callback mechanism, which lets you keep your data storage wherever you want (i.e. on remote computer, in memory or database record etc.).

The unique feature of SolFS is its resizable nature. When SolFS storage is mapped to a file (or other resizable media), SolFS virtual storage uses only the amount of space, that is needed to keep the data. So, instead of allocating a several-gigabyte-large storage (to ensure that it will be enough for holding all the data you have), you allocate a small file which is just several kilobytes large. And the storage file will be resized when necessary. If you remove the files from the storage, the storage is shrinked automatically.

User-mode API

User-mode API is very similar to the one of Application Edition, and introduces just about ten new functions, specific to driver management and storage mounting operations.
The API is needed only for driver and storage manipulation. All file operations can be performed using system file management API or framework-specific classes.
For example, you mount the storage using API functions, then write file using FileStream class in .NET or TFileStream in Delphi or CreateFile() API when working with WinAPI. For compatibility with Application Edition, OS Edition API also provides SolFSStream class, which can be used to access the data on the device.

Miss a feature? Tell us about your idea using Wish List.

Packages

  • Professional - all features listed below
  • Lite - simple container for your files with whole-storage encryption
For detailed information between differences between packages see SolFS packages comparison chart.

Features

  • Major functions:
    • Transparent strong encryption on both per-stream basis and encryption of the whole storage. Encryption is done using AES and SHA (HMAC) algorithms with 256-bit key and can be applied even to single stream within a file. The key is derived from the password by adding a salt to prevent attacks. User-defined encryption is supported.
    • Transparent compression on per-stream basis. Encryption and compression can be applied to a stream at the same time. By default ZLib is used and you can plug your own compression if needed.
    • Journalling support (optional). This feature guarantees, that if write operation was interrupted, data integrity is not compromized.
  • Capacity:
    • Support for stream size of up to 128 Terabytes (ex. 140 735 340 806 145 bytes) gives you virtually unlimited possibilities for storing large amounts of data on physical media.
    • Maximum storage size of 256 Terabytes (ex. 281 474 976 645 120 bytes). Please contact us if this is not enough for your task.
  • Data organization:
    • Support for multiple alternate data streams for files. Streams can be found in NTFS and MacOS file systems. They let you keep additional information of data revisions within the same file.
    • Support for Symbolic Links.
    • Page (cluster) sizes from 256b to 64Kb are supported.
    • Very long file names and hierarchies of any depth are supported.
    • File and directory names are stored in Unicode (UTF-16).
    • Support for fixed-sized and resizable storages.
    • Support for both standard and application-defined file attributes.
    • Custom tags can be read and written. Tags are small chunks of information (not larger than the page size), associated with the directory, file or individual stream. Tags can be identified by numeric ID or by name.
    • Storage metadata lets you save the information about the storage itself.
  • Data operations:
    • Support for all file/directory operations including wildcard-based search (searching for file names that match certain mask).
    • Check-and-repair and compact operations are supported for data recovery and performance improvement.
  • Platform features:
    • Possibility to keep the storage not only on physical disk drive, but in memory, database or anywhere else you want.
    • Possibility to work with as many storages at the same time as you need (limited by system resources).
    • Thread-safety. This means that you can perform several operations on different files in storage in different threads and storage correctly handles all operations.
  • Virtual Device features:
    • Creation of virtual disks which are available as drive letters.
    • Creation of virtual disks which are available via UNC path (\\.\SolFSDrive) and are not visible to the user in Explorer.
    • Possibility to restrict access to the storage and provide such access to applications based on their names or Process IDs.

Miss a feature? Tell us about your idea using Wish List.

Supported platforms

  • Windows (32-bit and 64-bit):
    • Windows 10
    • Windows 2012 Server R2
    • Windows 8.1
    • Windows 2012 Server
    • Windows 8
    • Windows 2008 Server R2
    • Windows 7
    • Windows 2008 Server
    • Windows Vista
    • Windows 2003 Server
    • Windows XP
  • Microsoft .NET Framework on Windows (32-bit and 64-bit):
    • .NET 4.6.x
    • .NET 4.6
    • .NET 4.5.1
    • .NET 4.5
    • .NET 4.0
    • .NET 3.5
    • .NET 3.0
    • .NET 2.0
  • MacOS (32-bit and 64-bit):
    MacOS 10.8 and later (separate installation of OSXFuse is required)
  • Linux (32-bit and 64-bit):
    Linux kernel 2.6 and later
  • FreeBSD:
    Public preview version is available.

Development tools

  • .NET API:
    • Visual Studio 2015
    • Visual Studio 2013
    • Visual Studio 2012
    • Visual Studio 2010
    • Visual Studio 2008
    • Delphi Prism
  • C++ API:
    • Visual Studio 2015
    • Visual Studio 2013
    • Visual Studio 2012
    • Visual Studio 2010
    • Visual Studio 2008
    • XCode on MacOS X
    • gcc on Linux and FreeBSD
  • VCL API (VCL units are linked into the application without any external DLLs):
    • Embarcadero RAD Studio 10.1 Berlin (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio 10 Seattle (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE8 (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE7 (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE6 (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE5 (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE4 (Delphi and C++Builder, Windows targets)
    • Embarcadero RAD Studio XE3 (Delphi and C++Builder)
    • Embarcadero RAD Studio XE2 (Delphi and C++Builder)
    • Embarcadero RAD Studio XE (Delphi and C++Builder)
    • Embarcadero RAD Studio 2010 (Delphi and C++Builder)
    • CodeGear RAD Studio 2009 (Delphi and C++Builder)
    • CodeGear RAD Studio 2007 (Delphi and C++Builder)
    • Borland RAD Studio 2006 (Delphi and C++Builder)
    • Delphi 2005
    • Delphi 7
  • DLL API: any development tool that supports import of exported DLL functions.

To request more details please use our feedback form or Web-based Helpdesk system.


Ready to try? Download your own copy to try it for free. Ready to pull the trigger? Refer to the Prices and Ordering page for complete licensing information.

|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!