Metadata-Version: 2.4
Name: eolib
Version: 2.0.2
Summary: Core library for writing applications related to Endless Online.
Project-URL: Documentation, https://cirras.github.io/eolib-python
Project-URL: Issues, https://github.com/Cirras/eolib-python/issues
Project-URL: Source, https://github.com/Cirras/eolib-python
Author-email: Jonah Jeleniewski <cirrasbu@hotmail.com>
License-Expression: MIT
License-File: LICENSE.txt
Keywords: endless-online
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
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: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Games/Entertainment
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# EOLib

[![PyPI - Version](https://img.shields.io/pypi/v/eolib.svg)](https://pypi.org/project/eolib)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/eolib.svg)](https://pypi.org/project/eolib)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Cirras_eolib-python&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Cirras_eolib-python)
[![Lint](https://github.com/Cirras/eolib-python/actions/workflows/lint.yml/badge.svg?event=push)](https://github.com/Cirras/eolib-python/actions/workflows/lint.yml)

A core Python library for writing applications related to Endless Online.

## Installation

```console
pip install eolib
```

## Features

Read and write the following EO data structures:

- Client packets
- Server packets
- Endless Map Files (EMF)
- Endless Item Files (EIF)
- Endless NPC Files (ENF)
- Endless Spell Files (ESF)
- Endless Class Files (ECF)

Utilities:

- Data reader
- Data writer
- Number encoding
- String encoding
- Data encryption
- Packet sequencer

## Development

### Requirements

- [Python](https://www.python.org/downloads/) 3.8+
- [Hatch](https://hatch.pypa.io/latest/install/)

### Available Commands

| Command                     | Description                                            |
| --------------------------- | ------------------------------------------------------ |
| `hatch build`               | Build package                                          |
| `hatch clean`               | Remove build artifacts                                 |
| `hatch run test`            | Run unit tests with coverage                           |
| `hatch run lint:format`     | Format source files using `black`                      |
| `hatch run lint:style`      | Check formatting using `black`                         |
| `hatch run lint:typing`     | Check typing using `mypy`                              |
| `hatch run lint:all`        | Check formatting using `black` and typing using `mypy` |
| `hatch run docs:build`      | Build documentation using `mkdocs`                     |
| `hatch run docs:serve`      | Build and serve documentation using `mkdocs`           |
| `hatch run docs:deploy`     | Build and deploy documentation using `mkdocs` & `mike` |
| `hatch run release:prepare` | Prepare and tag a new release                          |