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