Metadata-Version: 2.4
Name: openide-client
Version: 1.0.0
Summary: Python client library for OpenIDE container system
Home-page: https://github.com/artemjs/OpenIDE
Author: ArtemJS
Author-email: ArtemJS <artemjs@example.com>
Maintainer-email: ArtemJS <artemjs@example.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/artemjs/OpenIDE
Project-URL: Documentation, https://github.com/artemjs/OpenIDE/tree/v1
Project-URL: Repository, https://github.com/artemjs/OpenIDE.git
Project-URL: Bug Tracker, https://github.com/artemjs/OpenIDE/issues
Keywords: docker,containers,virtualization,development,api,client
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: psutil>=5.8
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov>=2.0; extra == "dev"
Requires-Dist: black>=21.0; extra == "dev"
Requires-Dist: flake8>=3.8; extra == "dev"
Requires-Dist: mypy>=0.800; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# 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

### Установка зависимостей
```bash
pip install -r requirements.txt
```

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

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

### Создание и запуск контейнера
```bash
# Простой контейнер
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
```

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

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

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

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

### Работа с образами
```bash
# Список образов
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` | Информация о системе |

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

### Работа с файлами
```bash
# Создание файла
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
```

### Работа с папками
```bash
# Создание папки
folder create myfolder

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

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

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

### Навигация
```bash
# Создание директории
directory create newdir

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

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

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

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

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

### Виртуальные окружения
```bash
# Создание 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}
```

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

### Профили ресурсов
```bash
# Автоматическое определение
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**: настраиваемые лимиты
- **Процессы**: контроль количества процессов
- **Порты**: оптимизированное выделение

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

### Автоочистка
```bash
# Настройка автоархивации
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
```

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

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

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

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

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

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

### CI/CD
```bash
# Сборка образа
python openide.py build -t myapp:latest .

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

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

## 🔍 Отладка

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

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

### Мониторинг
```bash
# Статистика системы
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! 🚀
