CBFS® Storage

Embed a Virtual File System on Any Storage Device

CBFSStorage

Use CBFS Storage to implement high-performance file and document storage that can be placed on hard drives, flash cards, custom hardware equipment, or other media devices. You can also use CBFS Storage inside files on disks, in database records, in application resources, in raw memory, on Web servers, or inside any other logical objects. Empowered by modern cryptographic algorithms, CBFS Storage natively keeps your data highly secured, plus you can add your own encryption and authentication mechanisms. You will benefit from high storage capacity, multithreaded write/read operations, custom file attributes and tags, and much more. In short, CBFS Storage is a secure vault for the information your applications create, process, or archive.

  • Better Than a Database
    Unlike databases, CBFS Storage offers a container with a hierarchical structure, versioning of data, and on-the-fly encryption and compression. At the same time, CBFS Storage lets you add tags of various types to each data stream (file) and use SQL-like query language to search data by tags.
  • Fast and Easy File Compression
    Similar to ZIP files, CBFS Storage compresses the data and stores everything in one container. But unlike ZIP format, CBFS Storage was designed for easy rewriting of files in the container. Write and delete operations are fast and don't require rewriting of the whole container file.
  • Virtual File System That Behaves Like a Physical Disk
    As a virtual file system, CBFS Storage stores files in the container. Much like a disk, the CBFS Storage container can have a drive letter (on Windows) or be mounted to a folder on existing disk (Windows, Linux, MacOS, BSD), thus providing seamless integration into the disk subsystem of the OS. The users won't know that they are working with something that is not a physical storage.

Deal with Multiple Files

Current applications tend to minimize the number of files used because file systems with large cluster size make this impractical and hard to manage. CBFS Storage solves this problem by supporting page sizes starting from 512 bytes. Keeping all data in one file lowers fragmentation on physical drive and speeds up file operation. The single file can be easily copied/moved, deleted, etc. thus simplifying maintenance (including data recovery). Game developers, for example, find CBFS Storage especially useful. Modern games include myriads of files, which must be accessed with the fastest possible speed.

Maintain Data Integrity by Journaling and Protecting Internal Structure

CBFS Storage helps maintain data integrity in two ways: journaling and hiding internal structure.

  • CBFS Storage includes optional journaling support. When data is written, information about the operation is saved to special log file. If the file write operation is interrupted, CBFS Storage will restore integrity of the storage file.
  • Users can be a danger to internal data of an application. One might accidentally delete the necessary file and this will lead to the necessity to re-install the whole application. To avoid such a situation, CBFS Storage hides the internal structure of the data from user.

Increase Data Access Speed

If your application uses many files (with data, code, or multimedia), it performs many requests to underlying file system. All such requests take time due to specifics of file system driver implementation. CBFS Storage reduces the time needed to access the data because the CBFS Storage engine works in user mode and much fewer calls to file system driver are involved.

Create Compound Documents

It is possible your application’s document format consists of several independent parts or requires some embedded data. Examples are music files (which include actual music, song lyrics, and information about songs) or text documents with embedded images. The structure of CBFS Storage allows you to keep all such data in one file so the user can copy the document as one file. You can even keep revisions of the document in the same file. With the usual approach, adding revisions would require changing the document format. With CBFS Storage, you just save another file.

Provide Unbreakable Data Security

Most data formats used by modern applications, such as Microsoft Office, do not provide enough security for their creators. Passwords used by such data formats can be found out easily using special tools. If you need real security and don't want to deal with encryption yourself, you can make use of per-stream and whole-storage encryption built into CBFS Storage.

  • Transparent strong encryption on both per-stream basis and encryption of the whole storage. Encryption is done using AES and SHA (HMAC) algorithms with a 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 also supported.
  • Transparent compression on a per-stream basis. Encryption and compression can be applied to streams at the same time. By default, ZLib is used, but you can plug in your own compression if needed.
  • Journaling support (optional). This feature guarantees that data integrity is not compromised if write operations are interrupted.
  • Asynchronous notifications
  • Single-file container for your data
  • Whole-storage encryption of your data
  • Per-file encryption of files in container
  • Per-file compression of files in container
  • Custom encryption and compression via callbacks
  • Tags, Storage metadata, and custom attributes
  • Alternate streams
  • Custom backend storage for container (via callbacks)
  • SQL-like search engine
  • Source-code is available (as a separate option during license purchase)
  • Support for stream size of up to 128 Terabytes gives you virtually unlimited possibilities for storing large amounts of data on physical media.
  • Maximum storage size of 256 Terabytes. Please contact us if this is not enough for your task.
  • 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.
  • 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.
  • Keep the storage not only on physical disk drive, but in memory, database, or anywhere else you want.
  • Work with as many storages at the same time as you need (limited by system resources).
  • Keep threads safe. This means that you can perform several operations on different files in storage in different threads and correctly handle all operations.

Windows

  • Windows XP, Vista, 7, 8, 8.1, 10
  • Windows Server 2008, 2008 R2, 2012, 2012 R2, 2016

Microsoft .NET Framework

  • 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.6x

Mobile

  • Android 2.2+
  • iOS 5.1.1+

Linux/Unix

  • Kernel version 2.6.x+

.NET API

  • Visual Studio 2008, 2010, 2012, 2013, 2015, 2017
  • Delphi Prism

C++ API

  • Visual Studio 2008, 2010, 2012, 2013, 2015, 2017
  • XCode on macOS
  • gcc on all supported platforms

ActiveX API (OS Edition)

  • Visual Studio 2008, 2010, 2012, 2013, 2015, 2017

DLL

  • Any development tool that supports import of exported DLL functions

Download a Free Trial

Download a fully-functional trial complete with documentation, samples, and support.

Download Now v2017.0.0.0 | 09/11/2017

Request a Quote

Please tell us about your project and interests and we will respond as quickly as we can.

Request a Quote Request a Quote Request a Quote