Solid File System™ (SolFS) features
Solid File System (SolFS) is a flexible, high-performance file system, designed for use with both real media (such as Hard Drives or Flash Card) and virtual media (files on the disk, databases, application resources, raw memory).
Solid File System (SolFS) is a flexible, high-performance file system, designed for use with both real media (such as Hard Drives or Flash Card) and virtual media (files on the disk, databases, application resources, raw memory).
Like other file systems, SolFS uses page-based organization of data with hierarchical structure of files and directories inside. Page mode allows SolFS to quickly and efficiently manage (create/write/delete) files and folders.
At the same time SolFS is not resource-hungry - it is capable to work with fixed-sized space (such as partition on hard drive) or resize the underlying media automatically when the data is added or deleted.
Solid File System is both a specification of file system format and portable implementation written in plain ANSI C.
See a comparison chart for comparison of SolFS with other popular file systems.
Solid File System™ features are:
- 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 streams per file. 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.
- 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.
- Transparent cross-platform operations on both big-endian and little-endian platforms. The storage created on one platform can be used on others.
- (Driver and Embedded editions) System-level drivers for Windows and Windows Mobile are available.
