I’m glad you asked.
When we designed the architecture for inflo we were initially going to make inflo an all-rails project. While planning, we soon realized that inflo has potential to grow much beyond what a simple rails application can offer.
With a dedicated backend that has both a REST interface as well as a WebDAV interface we will be able to support many different front ends to access one’s data. During the project course we will implement a web interface in Ruby on Rails as one client. With the WebDAV support we can support file access from all different operating systems that have a working WebDAV implementation. In the future we can then easily create more clients, for example for mobile phones or clients that enable offline work with files.
Another reason we chose to build a backend in C++ is of course performance. We want inflo to be able to quickly and efficiently index and search files based on tags as well as full content search. Because all interaction with files will be through searches, it is absolutely critical that we get these searches as fast as possible to make the system fast and responsive to use.
