Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Расширение функциональности tt

Утилита tt реализует модульную архитектуру: её команды фактически являются отдельными модулями. При запуске tt с командой выполняется соответствующий модуль с заданными аргументами.

Благодаря модульной архитектуре функциональность tt можно расширить с помощью внешних модулей (в отличие от внутренних модулей, реализующих встроенные команды). Иными словами, можно написать любой код, который требуется выполнить из tt, упаковать его в исполняемый файл и запустить командой tt:

tt my-module-name my-args

Имя команды, выполняющей модуль, совпадает с именем исполняемого файла модуля.

Описание и справка модуля

Исполняемые файлы, реализующие внешние модули tt, должны поддерживать два параметра:

  • --description – вывести краткое описание модуля. Описание отображается рядом с командой в справке tt.
  • --help – показать справку. Сообщение справки отображается при вызове tt help <module_name>.

Расположение

Внешние модули должны располагаться в каталоге модулей, указанном в файле конфигурации:

tt:  modules:    directory: path/to/modules/dir

Чтобы проверить доступность модуля в tt, вызовите tt help. Доступные внешние модули отображаются в разделе EXTERNAL COMMANDS вместе с их описаниями.

Перегрузка встроенных команд

Внешние модули могут перегружать встроенные команды tt. Чтобы изменить поведение встроенной команды, создайте внешний модуль с тем же именем и собственной реализацией.

При обнаружении двух модулей – внешнего и внутреннего - с одинаковым именем по умолчанию используется внешний модуль.

Например, если требуется, чтобы tt показывал информацию о приложении Tarantool, напишите внешний модуль version, который выводит нужную информацию. Вызов tt version выполнит этот модуль вместо встроенного:

tt version # Вызывает внешний модуль, если он доступен

Можно принудительно использовать внутренний модуль, запустив tt с параметром --internal или -I. Следующий вызов выполнит встроенную команду version, даже если существует внешний модуль с таким же именем:

tt version -I # Вызывает внутренний модуль