Ivan Begtin
9.11K subscribers
2.47K photos
4 videos
113 files
5.21K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
Вышел Python 3.14.0 — это новая крупная версия языка программирования Python, выпущенная официально в октябре 2025 года. Она включает множество новых функций и оптимизаций по сравнению с Python 3.13:

- Официально поддерживается free-threaded режим (PEP 779), который снимает необходимость глобальной блокировки интерпретатора (GIL), что существенно улучшает многопоточную производительность.
- Введены шаблонные строковые литералы (PEP 750) для кастомной обработки строк, похожие на f-строки.
- Аннотации теперь вычисляются отложенно (PEP 649), улучшая работу с импортами.- Добавлен новый модуль compression.zstd с поддержкой алгоритма сжатия Zstandard (PEP 784).
- Улучшена поддержка UUID, добавлены версии 6-8, и генерация версий 3-5 стала до 40% быстрее.
- Встроенная реализация HMAC с формально проверенным кодом.
- Добавлен безопасный интерфейс для внешнего отладчика без накладных расходов (PEP 768).
- Появился экспериментальный JIT-компилятор в официальных сборках для macOS и Windows.
- Появились официальные бинарные сборки для Android.
-- Улучшения в работе с несколькими интерпретаторами и новый тип интерпретатора для современных компиляторов с ростом производительности.
- Улучшены сообщения об ошибках и стандартные библиотеки.

Всё выглядит как полезные изменения, переходить на эту версию пока рано, но скоро будет возможно

#python #datatools #dataengineering
👍11🔥2
Интересный свежий продукт Arc с открытым кодом по созданию хранилищ временных рядов. Внутри DuckDB, Parquet и MinIO, лицензия AGPL-3.0. Судя по коду и описанию он скорее про создание корпоративных банков временных рядов, в нем нет управления метаданными, но декларируется высокая скорость чтения и загрузки данных. А также интеграция с Superset. Если бы я делал движок BI внутри крупной компании, я бы к нему внимательно присмотрелся, поскольку я его не делаю, то любопытствую его внутренним устройством и подходом.

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

#opensource #data #datatools
👍9🤔2
Fivetran официально объединились с dbt Labs, а до этого они поглотили Tobiko Data, создателей SQLMesh. У них теперь под контролем аж две команды создававшие продукты номер 1 и номер 2 по корпоративной обработке данных, что чертовски похоже на монополию (на самом деле нет) и вызывает вопросы по перспективам открытых версий dbt и SQLMesh потому что два конкурирующих продукта под одной крышей.

К тому же и крыша такая что не всем нравится Fivetran из-за его новой ценовой политики основанной на числе обрабатываемых строк.

Поэтому новость не могу отнести к хорошим, но будем ждать новых свежих открытых продуктов в этой области если dbt протухнут.

#dataengineering #data #datatools
🔥42
Полезные ссылки про данные, технологии и не только
- State of AI Report за 2025 год, взгляд на состояние ИИ с точки зрения, в первую очередь, инвестиций. Очень полезная презентация с ключевыми фактами и трендами по рынку ИИ. Просто для чтения, какой-то разбор и факты оттуда отдельно.
- The era of open data infrastructure команда dbt Labs с обещаниями сохранения открытости после поглощения их Fivetran'ом. Не то чтобы до конца верится. Обратите внимание что это [open] [data infrastructure]. а не [open data] [infrastructure]. Маркетологи совсем иначе трактуют слова про открытость называя открытостью open to market и открытые стандарты.
- Bruin движок для построения конвееров данных на Python, включая трансформации с помощью SQL. Как легковесная альтернатива dbt. Бизнес модель идентичная dbt - облачный сервис Bruin Cloud, но их пока не поглотил Fivetran
- Lea другая альтернатива dbt, минималистичный SQL оркестратор. Чистый открытый код, без облачной и иной бизнес модели, но и с документацией похуже и скоростью разработки
- GET SDI греческий вентор и его геоинформационный портал на котором построены почти все ГИС страны. Греция одна из немногих стран со своим основным гео-вендором для онлайн ГИС, а я то все гадал откуда сложности с поиском их геопорталов, а ответ был на поверхности. Внутри, конечно, набор компонентов с открытым кодом

#opendata #geodata #data #opensource #datatools #ai #readings
32
Полезные ссылки про данные, технологи и не только:
- dash расширение для DuckDB для быстрого построения дашбордов. Напоминает некоторые open source BI инструменты, но тут во всём Parquet формат и DuckDB как инструмент запросов
- gizmosql построение SQL сервера на базе DuckDB и Apache Arrow Flight Server в тесной связке и с бенчмарками на типовых облачных серверах. Обещают легкое развертывание и работу с большими объёмами данных, но, ИМХО, конкретных примеров использования нехватает
- httpie хорошо известный в узких кругах разработчиков инструмент с открытым кодом для тестирования HTTP запросов и API в частности. Интересная альтернатива Postman, APIDog и им подобным. В 2021 году подняли $6.5 миллиона венчурного финансирования на облачный коммерческий продукт и вот уже более 7 месяцев не обновляют код, не публикуют ничего в блоге, твиттере и тд. Есть ощущение что то там случилось, как бы продукт не погиб
- fastmcp быстрое создание MCP интерфейса поверх приложения FastAPI. Выглядит привлекательно простотой разработки, но надо тестировать на практике конечно же.
- nextcloud облачный сервис и open source продукт управления файлами, календарем и документами созданный в Германии. Очень характерно наблюдать как просто из продукта на рынке они превращаются в инструмент цифрового суверенитета Евросоюза. Риторика, стиль публикаций и акценты до боли напоминают некоторые российские компании играющие в импортозамещение.

#opensource #tools #datatools
👍1075
Полезные ссылки про данные, технологии и не только:
- AI vs Gen Z: How AI has changed the career pathway for junior developers текст в блоге StackOverflow о том как тяжело теперь быть юным программистом (джуниором). Новых истин нет, лишь повторение того что ИИ меняет рынок разработки. Удивительно что в блоге StackOverflow, их тоже убивают ИИ агенты
- Announcing the Cloudflare Data Platform: ingest, store, and query your data directly on Cloudflare Cloudflare стремительно превращаются из инфраструктурной компании в дата компанию, теперь ещё и выкатили их дата платформу. Для продуктов не на российский рынок - это очень интересно, а в РФ его заблокируют рано или поздно.
- Python: The Documentary | An origin story история языка Python в документальном виде. Навевает ностальгию, при том что я сам с Python'ом начал работать только в 2001 году перейдя на него с Tcl/Tk+Expect+Shell. Многое поначалу казалось в нем странным, особенно отступы в коде, а потом это стал один из самых удобных языков разработки.
- RIP Tableau автор CTO компании Voi пишет про масштабный отказ от Tableau в их процессах. Я его понимаю и не понимаю тех кто продолжает полагаться на Tableau в работе. Интересно что заменили его на аналитическое решение на базе LLM

#links #readings #ai #data #datatools
51
В качестве регулярных напоминаний, всяческий полезный [и бесполезный] код утилит для командной строки которые я когда-то делал и иногда продолжаю развивать когда это необходимо для работы,
например, для Dateno. Лично я испытываю глубокую привязанность к работе в командной строке отсюда и все эти инструменты:

- undatum - многофункциональная утилита для обработки данных изначально в формате JSON lines, делалась как xsv для JSON/JSON lines, я её лично активно и везде применяю.
- docx2csv - утилита по извлечению таблиц из файлов MS Word (.docx), настолько простая что надо её с чем-то объединить
- mongo2md - инструмент автоматизации документирования коллекций в MongoDB было полезно когда MongoDB была в основе технологического стека разных проектов, сейчас скорее буду переводить в статус легаси, но полезно как пример автодокументирования.
- metawarc утилита по извлечению метаданных из файлов WARC, умеет собирать данные из pdf, doc, docx, pdf, png, jpg, xls, xlsx и других файлов документов и изображений. Полезна для разного рода OSINT задач и для автоматизированного анализа WARC файлов
- apibackuper утилита для сбора данных из API через декларативно заданные правила. Использую её повсеместно и всё время хочу переписать чтобы вместо cfg файлов использовать yaml/toml, заменить zip контейнеры на базу duckdb и в целом сделать удобнее. Но и так работает
- wparc архиватор API и данных из Wordpress и файлов заодно. Одна из утилит для архивации сайтов для RuArxive
- lazyscraper скрейпер сайтов для лентяев, когда хочется извлечь данные минимальными усилиями и без программирования. Я её чуть-чуть не доделал чтобы даже xpath не использовать, но в остальном вполне рабочий инструмент
- metacrafter мой любимый инструмент идентификации структуры таблиц в файлах и таблицах с данными. Надо объединить с undatum её конечно же
- apicrafter утилита по быстрому созданию API поверх коллекций в MongoDB. Когда-то использовалась в проектах где основной стек был на MongoDB, сейчас всё по другому я бы делал

#opensource #data #datatools
5
Я на днях также решил проверить на практике вайб-кодирование применение ИИ в разработке и с помощью Cursor обновил и выпустил новую версию iterabledata библиотеки для Python с помощью которой можно можно одинаковым образом читать файлы csv, json, bson, parquet, xls, xlsx и xml так что ты перебираешь объекты возвращается как Python dict. Для тех кто пользовался csv.DictReader или библиотекой jsonlines это должно быть очень понятно.

Я эту библиотеку когда-то делал как ядро для утилит metacrafter и undatum с помощью которой с их помощью можно было анализировать условно любые файлы с данными сжатыми чем-угодно.

В этом собственно отчасти и есть задумка. Наборы данных часто распространяются сжатыми Gzip, Bzip2, LZMA, Brotli или Zstandard, а инструменты для датафреймов или движки вроде duckdb имеют ограничения на поддержку форматов. Также часто данные имеют не utf8 кодировку и вообще удобнее работать в унифицированном интерфейсе.

Так что я написал унифицированные интерфейсы для кодеков сжатия и для типов данных. Заодно написал пример того как преобразовать дампы Википедии из сжатого XML в JSON lines.

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

А теперь с помощью Cursor'а:
- обновил документацию, переформатировал, добавил примеров
- добавил примерно +30% тестов
- исправил несколько ошибок
- проанализировал каких тестовых данных нехватает, запланировал их добавить чтобы покрыть тестами почти все кейсы

Первое что я могу сказать это то что Cursor даёт очень хорошие результаты во всех задачах написания тестов, документирования и анализа кода. Неидеально, но очень неплохо.

Второе что писать сам код я бы не доверил поскольку бывает разная сложность и архитектурная логика и ИИ агенты понимают её лишь отчасти. Я пока не понимаю когда произойдет качественный переход ИИ агентов к пониманию архитектуры программных приложений и основных принципов их построения, но это не кажется нереалистичным.

Третье, следующая эволюция ИИ агентов для разработки явно должна быть на уровне снижения сложности тех задач которые реально требуют заморочится и часто это не задачи разработки. ИИ агент может проводить "оценку разумности" создаваемого и глубже понимать стратегические цели, а не только тактические решения. Например, ИИ агент может посмотреть на код и понять что это библиотека для Python, подтянуть рекомендации для этих библиотек, проанализировать зависимости, предложить автоматизировать тестирование под разные платформы и так далее.

#ai #coding #python #datatools #opensource
👍13❤‍🔥1
Полезные ссылки про данные, технологии и не только:
- A Deep Dive into DuckDB for Data Scientists о том как дата сайентистам использовать DuckDB. Если коротко, то всё довольно просто и понятно.
- ClickHouse welcomes LibreChat: Introducing the open-source Agentic Data Stack Clickhouse поглотил LibreChat, инструмент с открытым кодом для создания ИИ чатботов. Инструмент был хороший, надеюсь таким и останется.
- Hannes Mühleisen - Data Architecture Turned Upside Down отличное выступление Hannes Mühleisen про ключевые изменения в архитектуре данных последних лет. Полезно и по смыслу и по визуальному представлению хорошо
- agor: Next-gen agent orchestration for AI coding ИИ агент для управления ИИ кодированием, автор его создатель Superset и позиционирует этот проект как думай об асситентах для кодирования как о Figma. С открытым. кодом. Любопытно, но ИМХО автор плохо объясняет преимущества, как подхода, так и интерфейса.

#opensource #data #datatools #dataengineering #ai
2
Полезные ссылки про данные, технологии и не только:
- quackstore расширение для DuckDB для кеширования облачных дата файлов, позволяет сильно ускорить выполнение запросов к облачным файлам благодаря их частичному сохранению. Полезная штука, её можно бы и сразу внутрь DuckDB ибо логично
- Catalog of Patterns of Distributed Systems для тех разработчиков кто хотят не только кодировать, но и двигаться в сторону архитектуры ПО.
- The Data Engineering Agent is now in preview Гугл запустили ИИ агента для дата инженеров внутри BigQuery, конечно же на базе Gemini. Дайте мне такой же только с открытым кодом и без инфраструктуры Google и с поддержкой всех основных инструментов и СУБД!
- Diseño del V Plan de Gobierno Abierto 2025-2029 5-й план по открытости гос-ва опубликовали власти Испании. Сейчас проходят публичные консультации и далее он будет утвержден. Открытые данные там, конечно же, присутствуют

#opendata #opensource #rdbms #datatools #dataengineering #ai
🔥42
Часто встречающаяся задача когда необходимо быстро создать API над какими-то данными и предоставить его внутренним и/или внешним пользователям. API, как правило, нужно для одной или нескольких из перечисленных причин:
1. Данные обновляются слишком часто чтобы делать дампы или предоставлять к ним прямой доступ
2. Необходимо предоставить данные недоверенным пользователям и поэтому прямой доступ к данным невозможен
3. Данные предоставляются на каких либо условиях предусматривающих ограничения, например, за деньги и ограничением числа записей за раз
4. API необходимо для интеграции с каким-либо существующим ПО которое умеет в API, но плохо или совсем не умеет работать с дампами и выгрузками данных
5. Нужна возможность ссылаться постоянными ссылками на конкретные записи в машиночитаемом виде.
6. API нужно, например, для быстрого написания фронтэнда или иного интерфейса которое бы через это API работало

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

Эти инструменты можно поделить на условно 3 типа:
- преобразующие данные в API
- создающие API поверх SQL и других баз данных
- позволяющие загрузить данные и сразу получить API на выходе

Для превращения данных несколько инструментов существовало относительно давно, например, csv-to-api и csv2api, они работали с CSV файлами и в общем-то довольно просты

Для баз данных есть инструменты вроде:
- gosql относительно свежий, работает поверх условно любой SQL базы данных
- Express REST API Generator - для MongoDB, давно не обновлялся
- RestHEART аналогично для MongoDB, но вроде как живой
- DataBeam код 12-летней давности от GSA (орган пр-ва США) с поддержкой преимущественно тяжелых корпоративных баз данных

И, наконец, есть какое-то число low-code инструментов вроде Retool, Baserow, Directus и тд. которые позволяют загружать туда таблицы и генерируют интерфейс для их редактирования и API заодно.

В своё время я сделал два похожих инструмента. Первый, самый простой, apiready грузил данные в MongoDB (в основном это были csv или tsv) файлы, анализировал их и создавал API поверх них. Я этот инструмент довольно быстро забросил и писал его оочень давно.

Более продвинутый инструмент был apicrafter вместо загрузки данных, он строился поверх базы MongoDB и создавл интерфейсы с помощью Python Eve довольно удобного инструмента, но статического. А apicrafter анализировал данные и собирал схему для работы Python Eve.

Когда-то я думал сделать этот инструмент поумнее и автоматически генерировать не только точки к API, но и документацию, примеры и тд., но со временем я начал убеждаться что MongoDB - это, конечно, неплохая штука, но с несколькими системными изъянами главные из которых низкая производительность и серьёзная неэффективность в хранении данных. В общем-то DuckDB или Polars или другие датафреймовые инструменты дают качественно лучший опыт в работе с данными, но переписывать под них не так то просто и главное нужно применение.

Тем не менее если решать не общую задачу, а конкретную по организации доступа к данным со всеми ограничениями, то может оказаться что схема данных + FastAPI + ИИ агент помогут собрать REST API гораздо быстрее. А могут и не собрать😂

В любом случае полезно знать про альтернативы и инструменты.

#api #opensource #datatools
81❤‍🔥1
Подборка полезных ссылок про данные, технологии и не только. В этот раз ссылки на видео:
- Meta Just Changed Data Compression FOREVER (OpenZL Explained) про новый инструмент для сжатия файлов OpenZL. Его важная особенность - это понимание форматов сжимаемых файлов и выбор правильного способа сжатия.
- Trustworthy Data Visualization (Kieran Healy, Duke University) видео с конфренции Posit 2025 о том как создавать визуализации данным которым можно доверять, полезное для всех кто визуализирует данные или читает визуализируемое. Автор написал немало про визуализацию, три книги и много статей ну и выступает весьма неплохо
- Mooncake: Real-Time Apache Iceberg Without Compromise (Cheng Chen) про построение озера данных с Apache Iceberg и Mooncake для реального времени. Заодно и с историей OLTP и OLAP и переход к озерам данных
- Introduction to OpenRefine использование OpenRefine, инструмента для очистки и обогащения данных. Примеры.и применение из работы с цифровыми архивами и библиотеками и не все знают что библиотекари - это основная аудитория пользователей OpenRefine.
- PostgresAI я так понимаю что это пока малоизвестный стартап который обещает применение ИИ для оптимизации баз Postgres. Концептуальная идея на поверхности, я, если честно, думал что появится что-то более универсальное по мониторингу и оптимизации с поддержкой разных СУБД. Честно говоря видео оформлено дурацки.и документация на их сайте практичнее

#readings #ai #datatools #datatools
🔥3👍2
В рубрике интересных инструментов работы с данными, datanomy утилита для командной строки для просмотра метаданных и данных внутри Parquet файлов. Простая штука, работает на базе фреймворка Textual для создания утилит командной строки и позволяет смотреть разную информацию включая схему, метаданные, данные и статистику по выбранному parquet файлу.

Инструментов для наглядного отображения Parquet файлов не так много, хотя и прибавляется. Этот выглядит как полезный.

#opensource #datatools #parquet
👍7
AgenticSeek альтернатива Manus умеющая выполнять разные, в том числе довольно сложные задачи требующие запуска приложений и браузера иных агентских операций. Важное отличие - открытый код и локальный (приватный) запуск.

#opensource #ai #privacy #llm #tools #datatools
10🔥1
После экспериментов с простым кодом, я постепенно добрался до тех инструментов которые используются внутри Dateno для сбора данных. Один из них это утилита apibackuper которая помогает вытащить данные публикуемые через API и сохранять их в виде датасета. Фактически это инструмент скрейпинга API через декларативное описание параметров скрейпинга (да, я люблю декларативные описания). У инструмента был ряд недостатков которые я исправлял и думаю что исправил, вот перечень изменений:
- переход от декларативного описания скрейперов с INI (.cfg) файлов на YAML, читать легче, синтаксис приятнее
- валидация YAML описаний через JSON схему
- поддержка ограченичений и таймаутов на число запросов в минуту (Rate Limiting)
- поддержка аутентификации к API
- экспорт данных не только в JSONL, но и в Parquet
- автоопределение формата экспорта данных по расширению файла
- массовое обработка исключений и понятные сообщения об ошибках везде где возможно
- тесты для покрытия большей части кода
- подробная документация
- и всякое по мелочи

Я этот инструмент изначально разрабатывал для для архивации данных публикуемых через API, но сейчас он используется в части кода Dateno для выгрузки метаданных из каталогов данных. Может его даже пора уже перенести из ruarxive в dateno на Github'е, ещё не решил.

На скриншоте то как это выглядит на примере реестра лекарственных средств ЕСКЛП

Для сбора данных достаточно выполнить две команды
- apibackuper run
- apibackuper export current.parquet


Первая выгрузит все данные постранично, вторая сохранит выгруженные данные в parquet файл.

#opensource #datatools #data #dataengineering
42
Продолжая рассказывать про применение ИИ агентов для разработки, после экспериментов на не самом критичном коде я добрался до обновления реестра дата каталогов в Dateno и могу сказать что результаты пока что хорошие.

Вплоть до того что ИИ агент способен сформировать карточку дата каталога просто передав ему ссылку и задав промпт сгенерировать его описание. Это работает, во многом, потому что уже есть больше 10 тысяч созданных карточек и поскольку есть чёткие спецификации схем ПО дата каталогов, самих описаний дата каталогов и тд.

Кроме того хорошо отрабатывают задачи которые:
- находят ошибки в метаданных дата каталогов
- находят и исправляют дубликаты записей
- обогащают карточки каталогов тематиками и тэгами
- исправляют геоклассификацию каталогов
- и многое другое что предполагает массовое исправление и обогащение данных

Лично для меня и Dateno это очень хорошая новость это означает что реестр (dateno.io/registry) можно вести теперь значительно меньшими личными усилиями.

В ближайшее время я сделаю очередное обновление реестра уже по итогам большого числа итераций обновления метаданных и качество реестра существенно вырастет. А оно влияет и на индекс Dateno и на сам продукт реестра дата каталогов.

P.S. Тут я описываю внутренности происходящего в Dateno, которым я занимаюсь как основным проектом и продуктом. А новости проекта всегда можно читать в LinkedIn

#opendata #datacatalogs #ai #dev #datatools
83🔥3🎉2
Ещё про официальную статистику, есть важный тренд о котором я писал пока что мало - это отделение данных от их представления. Официальная статистика чаще всего строится как цельные системы в которых сразу есть и возможность получения данных и их визуальное представление.

А за это время появились десятки стартапов и сервисов которые наглядность обеспечивают значительно лучше официальные статистические сервисы, например, я довольно давно слежу за сервисом PlotSet с их интерактивными графиками. Очень наглядные штуки они генерируют в очень короткие сроки. При этом я не призываю использровать именно их, есть и другие варианты, и многие из них создаются с помощью ИИ агентов.

Ключевое тут в отделении данных от представления. Отдельно данные и API и отдельно интерактивный сервис на них основанный. Для популяризации официальной статистики такое разделение может быть эффективнее любых монолитных централизованных платформ.

Интересно, кстати, есть ли альтернативы PlotSet с открытым кодом?

#dataviz #statistics #datatools
👏3🤝32
Для тех кто анализирует данные и тд. я масштабно обновил инструмент metacrafter https://github.com/apicrafter/metacrafter по идентификации семантических типов данных, включая персональные данные по многим странам и языка.

Что изменилось:
- добавлено много новых правил и обновлены имеющиеся
- сильно оптимизирован код для ускорения мэтчинга правил
- добавлена возможность фильтрации правил по стране (страна указывается в файле правил)
- добавлено множество опций для командной строки

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

Собственно сами правила тоже обновились https://github.com/apicrafter/metacrafter-rules

Это не финальные изменения, а подготовка кода к интеграцию в Dateno.

#opensource #datatools #dataengineering
👍31🔥1
DeepScholar свежий ИИ агент помощник ученого-исследователя. В авторах команда из Стенфорда которые делали Lotus, фреймворк по работе с датасетами с помощью LLM (собственно читая про Lotus я про DeepScholar и узнал).

Это не единственный подобный инструмент и их становится все больше.

#ai #research #tools #datatools
114
Как обмениваться большими файлами не привлекая внимания санитаров без необходимости использовать облачные диски или аренды серверов? AltSendme инструмент по отправке данных через зашифрованное peer-to-peer соединение, представляет собой GUI приложение для Linux, Windows и Mac. Можно выбрать конкретный файл и после нажатия на "Start sharing" приложение создает длинны код/тикет который надо любым способом передать получателю и который после ввода этого кода в это же приложение у себя быстро и напрямую скачивает файл.

Лично у меня реакция на такое "почему это не я придумал?!" потому что инструмент простой и полезный.

Всё это с открытым кодом, использует p2p прокотолы iroh у которых также есть аналогичная утилита SendMe для командной строки, также с открытым кодом.

Этот инструмент не единственный, их становится больше, интересно когда появятся первые proxy/vpn инструменты такой же природы? А может они уже и есть.

#opensource #filetransfer #tools #datatools
🔥1742