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
🤝 Вклад в проект
- Fork репозитория
- Создайте feature branch
- Внесите изменения
- Создайте 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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3e036cefa446a9312c394673cd9aa2231e3453f598b7037718a1107d5c95735
|
|
| MD5 |
296c546b572e040236105583a783ae45
|
|
| BLAKE2b-256 |
7fb90bbd15f7dce89541c23b5e2501d71474ca8dd9c1302d1d846f1097b8a465
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09f9101f7fa5577e729a83a9af1d26e0509c94737e467f531075fabcd594fda2
|
|
| MD5 |
b75c1bef9405106522afb08ea9bcf386
|
|
| BLAKE2b-256 |
7f0deae1166f2f97f045c24d822e997bb97dfd72e798c38594f5d6d92ded0fc7
|