Нереляционная встроенная база данных с разрешающей лицензией свободного программного обеспечения? - PullRequest
5 голосов
/ 12 апреля 2011

большое спасибо заранее, что нашли время взглянуть на мой вопрос.

(Мне известен этот вопрос Нереляционные базы данных для C ++ , но мои потребности немного другие, и этоесть только один ответ.)

Я занимаюсь разработкой коммерческой библиотеки C ++, которая, помимо прочего, должна сохранять сообщения.Я хотел бы не изобретать велосипед, написав собственную СУБД.К сожалению, у меня есть следующие ограничивающие критерии:

  1. Он должен быть применим из C ++ - я пишу библиотеку C ++.Привязки потенциально приемлемы, если уровень усилий, чтобы заставить их работать, не слишком высок.
  2. Мне нужна встроенная база данных.Автономный режим работать не будет.
  3. Я хочу избежать реляционной базы данных.Помимо опасений по поводу снижения производительности, я, как разработчик, не могу контролировать техническую политику, которая препятствует созданию реляционной базы данных.
  4. Мне нужна разрешительная лицензия на свободное программное обеспечение.Купить лицензии будет сложно, но клиент не хочет отдавать свой источник.
  5. Мне бы хотелось, чтобы решение было установлено (существовало хотя бы некоторое время после экспериментальной стадии)., использовался в нескольких проектах).

К сожалению, два варианта перехода не работают из-за вышеуказанного: -SQLite является реляционным -BerkeleyDB является GPL или коммерческим

Еще раз спасибо за любую помощь.

Ответы [ 2 ]

6 голосов
/ 12 апреля 2011

Используйте SQLite в режиме b-tree. Всеобщее достояние. Избегает политики. Давайте обойдем политические проблемы, избегая интерфейса SQL для критических для производительности путей и, при необходимости, используя путь синтаксического анализатора SQL для тех запросов, которые не находятся на критическом пути.

3 голосов
/ 12 апреля 2011

Оба Токийский кабинет и QDBM являются LGPL и имеют C API.

...