Skip to main content

Python client library for OpenIDE container system

Project description

OpenIDE v1 🚀

Легковесная контейнерная система на Python - оптимизированная альтернатива Docker для серверов с поддержкой 1000+ контейнеров.

✨ Основные возможности

🐳 Docker-совместимость

  • Образы и слои - полная поддержка Docker образов
  • Dockerfile - сборка образов из Dockerfile
  • Registry - локальный реестр образов
  • Команды - run, build, pull, push, images, logs, inspect, exec

🏗️ Оптимизация для серверов

  • Высокая плотность - поддержка 1000+ контейнеров
  • Управление ресурсами - лимиты CPU, RAM, процессов
  • Thread Pool - оптимизированное управление процессами
  • Copy-on-Write - экономия места через симлинки
  • Порт-пулинг - оптимизированное выделение портов

🔒 Изоляция и безопасность

  • Chroot Jail - полная изоляция файловой системы (Unix)
  • Ограниченный доступ - контейнеры не могут выйти за свои границы
  • Изолированная сеть - каждый контейнер имеет свой порт
  • Интернет-доступ - настраиваемый доступ в интернет

🧹 Автоочистка

  • Автоархивация - контейнеры автоматически архивируются в ZIP
  • Автоудаление - настраиваемое время неактивности
  • Экономия места - ZIP архивы с максимальным сжатием
  • Восстановление - возможность восстановить контейнеры из архивов

🛠️ Упрощенные команды

  • Простой синтаксис - интуитивные команды для файлов и папок
  • Виртуальные окружения - поддержка Python venv и Node.js
  • Локальные пакеты - localpip и npm для изолированной установки
  • Интерактивная оболочка - работа внутри контейнеров

📦 Установка

Требования

  • Python 3.8+
  • Windows/Linux/macOS

Установка зависимостей

pip install -r requirements.txt

Структура проекта

OpenIDE/
├── openide.py          # Основной файл
├── requirements.txt    # Зависимости
├── Dockerfile         # Пример Dockerfile
├── OpenIDE.txt        # Синтаксис упрощенных команд
├── share/             # Общие исполняемые файлы
└── containers/        # Файловые системы контейнеров

🚀 Быстрый старт

Создание и запуск контейнера

# Простой контейнер
python openide.py run ubuntu:latest "echo Hello World"

# Контейнер с автоархивацией через 5 секунд
python openide.py run ubuntu:latest "echo test" --archivetime 5s

# Контейнер с автоудалением через 1 минуту
python openide.py run ubuntu:latest "echo test" --cleanuptime 1m

Управление контейнерами

# Список контейнеров
python openide.py ps

# Детальная информация
python openide.py inspect <container_id>

# Остановка контейнера
python openide.py stop <container_id>

# Удаление контейнера
python openide.py rm <container_id>

Работа с образами

# Список образов
python openide.py images

# Сборка образа из Dockerfile
python openide.py build -t myapp:latest .

# Удаление образа
python openide.py rmi myapp:latest

🎯 Основные команды

Управление контейнерами

Команда Описание
run Запуск нового контейнера
ps Список контейнеров
stop Остановка контейнера
rm Удаление контейнера
exec Вход в контейнер
logs Просмотр логов
inspect Детальная информация

Управление образами

Команда Описание
images Список образов
build Сборка образа
pull Загрузка образа
push Загрузка в registry
rmi Удаление образа

Автоочистка

Команда Описание
cleanup Ручная очистка
cleanup-config Настройка автоочистки
archives Список архивов
restore Восстановление из архива

Специальные команды

Команда Описание
shell Создание постоянного контейнера
simple Упрощенные команды
stress Тестирование производительности
system Информация о системе

🛠️ Упрощенные команды

Работа с файлами

# Создание файла
file create test.txt "Hello World"

# Открытие файла
file open test.txt

# Удаление файла
file delete test.txt

# Копирование файла
file copy source.txt dest.txt

# Перемещение файла
file move old.txt new.txt

Работа с папками

# Создание папки
folder create myfolder

# Открытие папки
folder open myfolder

# Список содержимого
folder list

# Удаление папки
folder delete myfolder

Навигация

# Создание директории
directory create newdir

# Переход в директорию
directory open newdir

# Список директорий
cdirectlist

# Возврат назад
back

# Переход в корень
root

# Поиск файлов
search *.txt

Виртуальные окружения

# Создание Python venv
venv myenv{3.12.1}

# Активация venv
venv activate myenv

# Деактивация
deactivate

# Список venv
list

# Удаление venv
remove myenv

# Установка пакетов
localpip install requests

# Запуск Python скрипта
run: python{script.py arg1 arg2}

⚙️ Настройки производительности

Профили ресурсов

# Автоматическое определение
python openide.py run ubuntu:latest "echo test"

# Высокая производительность
python openide.py stress --profile high-performance

# Серверный профиль
python openide.py stress --profile server

# Информация о системе
python openide.py system

Лимиты ресурсов

  • Память: автоматическое определение (до 32GB)
  • CPU: настраиваемые лимиты
  • Процессы: контроль количества процессов
  • Порты: оптимизированное выделение

🔧 Конфигурация

Автоочистка

# Настройка автоархивации
python openide.py cleanup-config <container_id> --timeout 5m --action archive

# Настройка автоудаления
python openide.py cleanup-config <container_id> --timeout 1h --action delete

# Отключение автоочистки
python openide.py cleanup-config <container_id> --timeout 0

Сетевая настройка

  • Порты: автоматическое выделение (10000-65535)
  • Интернет: настраиваемый доступ
  • DNS: автоматическая настройка

📁 Структура файлов

Контейнеры

containers/
├── <container_id>/
│   ├── bin/           # Системные утилиты
│   ├── etc/           # Конфигурация
│   ├── tmp/           # Временные файлы
│   └── usr/           # Пользовательские файлы

Архивы

~/.openide/archives/
├── container_<id>_<timestamp>.zip
└── metadata_<id>_<timestamp>.json

Образы

~/.openide/images/
├── ubuntu:latest/
│   ├── layers/
│   └── metadata.json

🚀 Примеры использования

Разработка

# Создание dev окружения
python openide.py run ubuntu:latest "bash" --detach

# Вход в контейнер
python openide.py exec <container_id>

# Использование упрощенных команд
python openide.py simple <container_id>

Тестирование

# Тест производительности
python openide.py stress --count 100 --memory 512 --cpu 25

# Тест с высокой нагрузкой
python openide.py stress --profile high-performance --count 1000

CI/CD

# Сборка образа
python openide.py build -t myapp:latest .

# Запуск тестов
python openide.py run myapp:latest "python test.py"

# Автоочистка после тестов
python openide.py cleanup

🔍 Отладка

Логи

# Просмотр логов контейнера
python openide.py logs <container_id>

# Детальная информация
python openide.py inspect <container_id>

Мониторинг

# Статистика системы
python openide.py system

# Список контейнеров с ресурсами
python openide.py ps

🤝 Вклад в проект

  1. Fork репозитория
  2. Создайте feature branch
  3. Внесите изменения
  4. Создайте Pull Request

📄 Лицензия

Apache 2.0 License

🆘 Поддержка

  • Issues: Создайте issue в GitHub
  • Документация: См. OpenIDE.txt для синтаксиса команд
  • Примеры: См. Dockerfile для примеров сборки

OpenIDE v1 - легковесная, быстрая и эффективная альтернатива Docker! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openide_client-1.0.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openide_client-1.0.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file openide_client-1.0.0.tar.gz.

File metadata

  • Download URL: openide_client-1.0.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for openide_client-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f3e036cefa446a9312c394673cd9aa2231e3453f598b7037718a1107d5c95735
MD5 296c546b572e040236105583a783ae45
BLAKE2b-256 7fb90bbd15f7dce89541c23b5e2501d71474ca8dd9c1302d1d846f1097b8a465

See more details on using hashes here.

File details

Details for the file openide_client-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: openide_client-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for openide_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09f9101f7fa5577e729a83a9af1d26e0509c94737e467f531075fabcd594fda2
MD5 b75c1bef9405106522afb08ea9bcf386
BLAKE2b-256 7f0deae1166f2f97f045c24d822e997bb97dfd72e798c38594f5d6d92ded0fc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page