Mangle от Google: язык на базе Datalog для работы с разрозненными данными

Mangle — новый проект с открытым исходным кодом от Google, который расширяет логический язык Datalog для современных задач дедуктивного программирования баз данных. Реализованный как библиотека на Go, Mangle упрощает выполнение запросов и рассуждений по данным, хранящимся в разных местах и форматах.

Борьба с фрагментацией данных

Современные процессы разработки и обеспечения безопасности страдают от фрагментации данных. Сведения о зависимостях, уязвимостях, конфигурациях и инфраструктуре разбросаны по файлам, API, реестрам и другим хранилищам. Mangle позволяет рассматривать эти разрозненные источники как единую логическую базу данных. Вместо ручного объединения данных можно описать факты и правила и выполнить дедуктивный запрос, который учитывает всю картину целиком.

Расширения Datalog для практических задач

Mangle опирается на классический Datalog, добавляя полезные для реальных проектов возможности:

Эти дополнения сохраняют декларативную простоту Datalog и делают язык применимым к сложному практическому анализу.

Практические сценарии применения

Mangle особенно подходит для задач в области безопасности, анализа цепочек поставок и построения графов знаний:

Реализация и удобство для разработчиков

Реализация Mangle как библиотеки на Go позволяет встраивать язык в существующие приложения и инструменты анализа без необходимости разворачивать отдельную систему баз данных. Такой подход предоставляет возможности дедуктивного запроса прямо разработчикам и соответствует распространенным стекам разработки. Документация проекта ориентирована на практику и помогает разработчикам, более знакомым с императивными или объектно-ориентированными подходами, освоить логику на практике.

С чего начать

В репозитории проекта доступны документация, учебные материалы и примеры, которые помогут командам начать работу. Mangle предлагает прагматичный путь к объединению разрозненных данных и выполнению сложных рассуждений для анализа безопасности, управления инфраструктурой и других задач.