About Flip
Flip is a data model library, designed as a framework, real-time collaboration-oriented, transactional, portable and compact.
Key Points
Flip features a number of key points to your application :
- Real-time collaboration-oriented data model framework library
- Single user development turns automatically into a multi user application
- Undo/Redo and history are automatically handled (no action classes)
- Copy/Paste can be automatic or refined to your needs very simply
- Performant Lock-free multi-threaded/multi-process oriented architecture
- Transactional
- Server side is limited to data model code, making it less prone to bugs
- High stability
- High performance oriented, extensible, validated and future-proof document format
- At the core of Ohm Studio’s unrivaled collaborating solution
Those key points are detailed below.
Prerequisites
- Client Development in C++
- Portable C++ code (standard library, no external dependencies)
- gcc 4.0 or later, VC8 or later
- Windows, MacOS X, Linux
Multi/single user, good practices
The library has been conceived to let developers test their programs as single user with great chances to get it right for multi user. Particular efforts were made to avoid temporal impacts on development iteration. No server is required during development cycles.
Moreover, our team set some good practices over the last few years to help you implement a solid architecture that will stand the test of time and be able to meet new needs.
In fact, we experienced that industrial implementation of the model yields the best correct-lines-to-total-lines ratio. The unique way Flip works offers users to work in real-time collaboration without feeling any latency caused by the Internet.
Undo, redo, history, copy, paste
Flip’s very structure makes it unnecessary to manage undo and redo with specific code, which allows for super fast implementation of new industry-specific functionalities. The library can generate one or many undo/redo histories according to your needs.
Likewise, you can implement copy/paste with the same simplicity, while enjoying the unlimited possibilities of customization offered by this feature.
Document format, document version, validation
The default back-end writing format has a data structure similar to that of PDF. This has many advantages, including:
- Parsing much lighter than XML
- Iterative writing possibilities
- Use of a text editor in debug mode offering outstanding readability
- Zlib binary stream compression or specific binary filters to improve stream readability
The use of a text editor in debug mode offering outstanding readability, even with documents weighing 100MB+. Simple and efficient, no matter how complex the model is.
The document works on its own version. Graphs of multiple versions are available (branches for A/B testing for instance). The document conversion system has been successfully tested in production environment including radical paradigm changes.
Flip also allows you to set up a dynamic model validation system, regardless of the complexity involved. It can even handle structural model validation with no additional code. It doesn’t generate orphan objects: actually, we haven’t got any in 5 years of development.
Thread Flip
Flip has its own thread system, which allows for a lock-free multi-threaded architecture with no concern with competing thread systems. Even more, there can be several thread flips in different system processes with no impact on development iterations.
Interoperability
Flip has been designed to integrate with external engines without imposing its own architecture: IDs, references, and any other system used by external engines can be integrated in Flip’s engine, without the need to maintain specific glue code : each Flip object can store multiple represented objects.
Flip’s unique change detection system within a document let the client code parse the change in any directions to match external engines object life-time constraint for example.