Slick — это функциональная библиотека на языке Scala, предназначенная для типобезопасного доступа к реляционным базам данных через встроенный DSL и механизм асинхронного выполнения операций. Она предоставляет абстракции для описания схемы, запросов и трансформаций данных в виде выражений на языке Scala, которые затем компилируются в SQL и выполняются через JDBC. Slick сочетает функциональные парадигмы программирования с привычными реляционными операциями, обеспечивая статическую проверку типов на этапе компиляции и снижение числа ошибок, связанных с несоответствием схемы и типов.
Развитие Slick ориентировано на интеграцию с современными асинхронными средами выполнения и потоками данных: библиотека поддерживает неблокирующие операции и возвращает результаты в виде Future или других асинхронных конструкций, что упрощает масштабирование приложений. Slick используется для построения слоев доступа к данным в серверных приложениях на Scala, где важны безопасность типов, выразительность запросов и возможность композиции операций. История и конкретные версии библиотеки могут варьироваться; в случае отсутствия актуальных сведений в тексте приведено общее описание типичной функциональности таких библиотек.
- Типобезопасный DSL: выражение SQL-подобных запросов с проверкой типов на этапе компиляции.
 - Маппинг схемы: описание таблиц, столбцов и связей средствами Scala вместо аннотаций или XML.
 - Компиляция в SQL: трансляция выражений DSL в SQL-запросы, совместимые с JDBC.
 - Асинхронное выполнение: поддержка Future и других механизмов для неблокирующих операций.
 - Композиция запросов: построение сложных операций из простых выражений с переиспользованием фильтров и проекций.
 - Транзакции: управление транзакциями и группа операций с согласованностью данных.
 - Поддержка разных СУБД: адаптация генерируемого SQL под особенности различных реляционных СУБД.
 - Интеграция с экосистемой Scala: совместимость с библиотеками для потоков, тестирования и конфигурации.
 - Оптимизация запросов: возможности для ленивого вычисления и оптимизации сгенерированного SQL.
 - Миграции и схемы: инструменты и практики для управления изменениями структуры базы данных в коде приложения.