У меня есть программа на C++ в стадии разработки, которая обрабатывает множество различных типов объектов, которые необходимо извлечь из файлов при запуске. Общий размер файла немного меньше 1 ГБ. Программа должна работать как минимум на Windows 7 и Linux.Локальная/выделенная база данных sql для программы
Моя цель состоит в том, чтобы обеспечить функциональные возможности для чтения файлов и сохранять их в объекты (в том числе проверки достоверности данных), так что решения я могу думать о том, являются:
- просто обеспечивает по меньшей мере одна функции на каждый тип объекта для чтения из файлов и копирование данных на вновь созданные объекты. Это то, что я делал до сих пор.
- Используйте базу данных для хранения данных и получения их с помощью SQL.
Я хотел бы перейти на второй вариант, однако у меня есть несколько ограничений:
- Я не разрешено подключаться к Интернету с моей программой, поэтому база данных удаленный сервер находится вне вопрос.
- Мне не разрешено создавать программу, которая заставляет пользователя устанавливать дополнительное программное обеспечение, в данном случае, локальную базу данных.
- Доступ к локальным данным может быть выполнен только при запуске программы: никаких дополнительных исполняемых файлов, которые пользователь может запускать для изменения или чтения файлов.
Я искал в Интернете библиотеку C++, которая позволяет программе хранить/извлекать определенные данные в локальные файлы, используя синтаксис SQL, но до сих пор у меня ничего нет. Программное обеспечение базы данных, которое я знаю, например MySQL, Postgresql и т. Д. Не будет делать из-за ограничений, о которых я упоминал.
Мой главный вопрос: Есть ли такая библиотека для C++, или мне нужно реализовать свои собственные? Я бы предпочел, чтобы это было бесплатно, но я могу делать все, что могу найти.
Если таких библиотек нет, знает ли кто-нибудь другие альтернативы для хранения данных локально для C++-программы? И если бы я должен был реализовать свой собственный, каким образом (как в структурах данных файла) будет храниться мои объекты (без его чрезвычайно медленного для менее 1 ГБ данных)?