Home | Contact Us | Company Profile | Products | Services | Links


Products

  Network Protocol Libraries
 ▪ Communications Libraries
  Communications Software
  Security and Encryption
  Show all products
 

Services

  Software Development
  Area of Expertise
  Recent Projects
 

About Us

  Company Profile
  Customer List
 ▪ Partners
 ▪ Become our partner
 ▪ Press Releases
 ▪ Contact Us
 

Useful Information

  Industry Links

 

Customers Say ...

 ▪ I used Solid File System for several applications already. You've implemented it very efficiently. Lots of smart ideas without sacrificing reliability. All this at very reasonable price. Thank you. Ryan Hendricks.

 ▪ Kudos to you for such a great product! My programmers like it enormously. We were able to plan and develop complex storage and data management application within allocated timeframe. Thank you for giving us individual support from the beginning. Steve Wallwork

 ▪ I am recommending your company to every developer that asks me. You're really a wondeful example of how software companies should be. Fast, kind with customers, effective and prompt on bugfixes. GREAT!
Federico Simonetti

 

ORDERING INFORMATION:


 ORDER NOW

Solid File System™ (SolFS)
(Single-File Virtual File System for .NET, Windows, Linux, PocketPC)


Contact Information:
 Contact Us
 

apPLICATIONS

Dealing 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. SolFS 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. And the single file can be easily copied/moved, deleted, etc. thus simplifying maintenance (including data recovery).

SolFS appears to be especially useful for game developers. Modern games include myriads of files, which must be accessed with the fastest possible speed. And SolFS lets you pack all game files, compressed, into one file.

 ▪ Making data integrity real

SolFS has optional journalling support. When the data are written, information about the operation is written to special log file. If file write operation is interrupted, SolFS will restore integrity of the storage file automatically (if journalling was enabled when storage was opened).

Users can be a danger to internal data of the application. One might accidentally delete the necessary file and this will lead to necessity to re-install the whole application (or it's part). To avoid such situation it makes sense to hide internal structure of the data from user. Then the user has less chance to delete the necessary data.

 ▪ Increasing data access speed

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

Providing unbreakable data security

Most data formats of modern applications (like MS Office etc) don't 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 SolFS (registered version only).

SolFS utilizes AES algorithm with 256 bit key created from user-provided password using SHA-256 algorithm (HMAC mode). Algorithms used in SolFS make encrypted information impossible to be retrieved without knowing the password. Even dictionary attacks are nearly impossible.

If you use SolFS in callback mode (ie. it's your application that reads and writes storage data to disk), you can apply your own encryption scheme, thus gaining complete control over security of your data.

Creating compound documents

It is possible, that the document format of your application consists of several independent parts or requires some embedded data. Examples are music files (which include actual music, song lyrics and information about song), or text document with embedded images. Effective structure of SolFS lets you keep all such data in one file so the user can copy the document as one file. MS Office uses structured storage to keep different information of a document. However, Windows implementation of structured storage is not efficient and not portable to other platforms.

And you can even keep revisions of the document inside. For example, your application might need to keep track of last 3 revisions of the document. With usual approach adding revisions would \With SolFS you just save another file into storage.

pLATFORMS

SolFS engine is written in portable and efficient ANSI C. .NET and C++ wrapper classes are written in C++. Delphi (VCL) classes are written in Delphi.

SolFS supports the following platforms:

Windows 98, Windows ME, Windows NT 4.0, Windows 2000, Windows XP, Windows 2003 Server, Windows Vista, Windows 2008 Server. 64-bit systems are supported.
Microsoft .NET Framework 1.1, .NET 2.0, .NET 3.0, .NET 3.5. 64-bit systems are supported.
Windows CE 3.0, 4.x, 5.0 (including Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2005, Windows Mobile 2006 and any other Windows CE-based platforms that have storage APIs)
Palm OS (available on request)
Linux/Unix (available on request)
embedded operating systems (available on request)

DEVELOPMENT TOOLS

  .NET package. Compiled in managed C++, this edition seamlessly integrates into .NET Framework and provides complete support for Visual Studio.NET, Borland C# Builder and Borland Delphi 8, Delphi 2005, Delphi 2006 and CodeGear RAD Studio 2007;
Windows package (includes VCL, DLL/Static, and ActiveX packages). VCL package can be used with Borland Delphi 4 to 2007 or C++ Builder 4-6. SolFS engine links statically into your VCL application and no external DLLs are required.
DLL/Static library package can be used with any development tool, that lets you use DLL libraries.
Static library can be used with MS Visual C++ 6.0 or later.
ActiveX control can be used with Visual Basic 6 or any other Windows development tool that supports COM/ActiveX technologies.
PalmOS package.
Linux/x86 shared object and static library. Can be used with GCC and Kylix 1-3;
Unix source code package which supports both little-endian and big-endian systems

overview

Solid File System (SolFS) is a flexible, high-performance file system, 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). SolFS gives you advantages of reliable encryption, transparent compression, high storage capacity, application-defined attributes, custom tags, storage metadata, use of Unicode, creation of virtual disks, and support of mobile devices.

It is always a challenge to develop document management system or a subsystem for binary document storage. Keeping documents in their native format as files in folders of a file system is a reasonable solution. Naturally, in many cases, it is inadequate to use FAT-like system or NTFS. Among well-known shortcomings of the mentioned file systems, impeding implementation of many desirable functionalities, is lack of efficient data access permission schemata: files may be easily accessed, modified o deleted by any user or application. SolFS is a real breakthrough moving your application to the top level of data safety and reliability.

Reliable Encryption
Transparent strong 256-bit key encryption is provided by AES and SHA2 algorithms. It can be applied even to a single stream, single file, or to a whole file storage. Moreover, if you need to meet stronger requirements of improving security level, you can always add your own encryption algorithms.

Transparent Compression
Encryption in SolFS can be complemented by compression. ZLib library is used by default, ensuring highest compatibility and maximal speed of operations. Should you require another compression method, it can be also easily added

Huge Storage Capacity
To meet your current and future needs, SolFS allows creation of really huge storages. Maximum storage size is 256 Terabytes and still can be increased upon request. This gives you virtually unlimited possibilities for storing large amounts of data on physical media, including distributed locations.

Application-Defined Attributes
SolFS makes possible to keep linked descriptive properties of a document as file attributes. Therefore, it is possible to design custom task-oriented attributes. This significantly improves flexibility of file system as a document storage.

Built-in Tag Support
Tags have gained popularity as an easy and flexible way to structure information and build many-to-many relationships. Although tags are just small chunks of data (text or binary), their use on a file or document level gives significant benefits. SolFS not only allows association of tags with directory, file or individual streams, but contains API functions for tag-based searches.

Storage Metadata
To provide data protection, an application needs to keep somewhere information about storage. SolFS allows keeping of vital metadata within storage itself.

Unicode support
Modern world requires taking into account language differences. SolFS employs Unicode everywhere, including naming of storages, files and directories, thus allowing use of almost any language on Earth.

Virtual Disk
SolFS Driver Edition lets you mount storage as a virtual disk. This allows you to manage controlled access to files by users or third party applications.

Mobile Devices
SolFS is not targeted to desktop systems and servers only. SolFS Embedded Edition is designed to be used on various mobile devices, including widespread Windows Mobile, or your custom hardware.

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).

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.

  • 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.
       

Copyright (c) 2005-2009. Hillstone Software. All rights reserved.