9 лучших опенсорс находок за март 2020

Доброго карантинного апреля, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за март 2020.

За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).

В сегодняшнем выпуске.
Технологии внутри: Rust, TypeScript, JavaScript, Go, Python.
Тематика: веб разработка, тестирование, инструменты разработчика, администрирование и документирование.

Прошлый выпуск (аж ноябрь 2019!).


glitch-this

Консольная утилита, чтобы делать «загличенные» анимации с артефактами из обычных gif’ок.
Написано на Python.

Ссылка

glitch-this


k9s

Удобная панель для управления k8s из вашего терминала.

Написано на Go.

Ссылка

k9s


gqless

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

Написано на TypeScript.

Ссылка

gqless


django-schema-graph

Django приложение, чтобы строить и визуализировать отношения ваших моделей и приложений. Отличная штука для документирования вашего проекта.

Написано на Python.

Ссылка

django-schema-graph


misspell-fixer-action

Github Action (что такое Github Action?) для исправления опечаток в вашем исходном коде и документации. Автоматически присылает пулл реквесты с правками и отправляет вам на ревью. Пример.

Написано на Shell.

Ссылка

misspell-fixer-action


schemathesis

Инструмент для тестирования соответствия вашего swagger.json и реального приложения. При помощи property-based тестов создает тысячи запросов по схеме и отправляет их в ваш сервис, тестирует результат.

Написано на Python. Подходит для приложений написанных на любом языке. Главное, чтобы был валидный swagger.json

Ссылка

schemathesis


kmon

Менеджер и мотитор для Linux Kernel.

Написано на Rust.

Ссылка

kmon


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')

В такую диаграмму:

napkin


explainshell

Веб-сервис, который объяснит, что делают ваши Shell выражения.

Написано на Python и JavaScript.

Ссылка

explainshell


Бонус!

opensource.builders: подборка open-source альтернатив для множества коммерческих проектов. На любой вкус и цвет.

opensource.builders

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

© Habrahabr.ru