Доброго карантинного апреля, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за март 2020.
За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).
В сегодняшнем выпуске.
Технологии внутри: Rust, TypeScript, JavaScript, Go, Python.
Тематика: веб разработка, тестирование, инструменты разработчика, администрирование и документирование.
Прошлый выпуск (аж ноябрь 2019!).
glitch-this
Консольная утилита, чтобы делать "загличенные" анимации с артефактами из обычных gif'ок.
Написано на Python.
Ссылка
k9s
Удобная панель для управления k8s из вашего терминала.
Написано на Go.
Ссылка
gqless
GraphQL без ручного написания запросов. Пишите только логику, библиотека сама сделает все остальное.
Написано на TypeScript.
Ссылка
django-schema-graph
Django приложение, чтобы строить и визуализировать отношения ваших моделей и приложений. Отличная штука для документирования вашего проекта.
Написано на Python.
Ссылка
misspell-fixer-action
Github Action (что такое Github Action?) для исправления опечаток в вашем исходном коде и документации. Автоматически присылает пулл реквесты с правками и отправляет вам на ревью. Пример.
Написано на Shell.
Ссылка
schemathesis
Инструмент для тестирования соответствия вашего swagger.json и реального приложения. При помощи property-based тестов создает тысячи запросов по схеме и отправляет их в ваш сервис, тестирует результат.
Написано на Python. Подходит для приложений написанных на любом языке. Главное, чтобы был валидный swagger.json
Ссылка
kmon
Менеджер и монитор для Linux Kernel.
Написано на Rust.
Ссылка
napkin
Библиотека для рисования UML как простой Python код.
Написано на Python.
Ссылка
Превращает такой код:
def distributed_control(c):
user = c.object('User')
order = c.object('Order')
orderLine = c.object('OrderLine')
product = c.object('Product')
customer = c.object('Customer')
with user:
with order.calculatePrice():
with orderLine.calculatePrice():
product.getPrice('quantity:number')
with customer.getDiscountedValue(order):
order.getBaseValue().ret('value')
c.ret('discountedValue')
В такую диаграмму:
explainshell
Веб-сервис, который объяснит, что делают ваши Shell выражения.
Написано на Python и JavaScript.
Ссылка
Бонус!
opensource.builders: подборка open-source альтернатив для множества коммерческих проектов. На любой вкус и цвет.
На сегодня все. Для тех, кому подборка понравилась — подписывайтесь на канал. Там много и других интересных проектов. Предложения по улучшениям, ссылки на проекты, обратную связь — пишите в комментарии.