Metadata-Version: 2.4
Name: nauticore
Version: 1.0.1
Summary: Packaged Nauticore backend with public communication and vision APIs.
Requires-Python: !=3.9.*,<3.11,>=3.8
Description-Content-Type: text/markdown
Requires-Dist: av==12.3.0
Requires-Dist: cryptography==46.0.5
Requires-Dist: fastapi==0.124.4
Requires-Dist: numpy<2.2.7,>=1.24.4
Requires-Dist: onvif-zeep==0.2.12
Requires-Dist: opencv-python==4.13.0.92
Requires-Dist: uvicorn[standard]==0.33.0

# `Nauticore`

`Nauticore` is a Python backend component library designed for underwater robotics applications, including **AUVs** (Autonomous Underwater Vehicles) and **ROVs** (Remotely Operated Vehicles).

It provides a unified foundation for device-side systems, including:

- **runtime bootstrap and service startup**
- **communication access and integration**
- **vision service support**
- **Python-based extension points for secondary development**

`nauticore` is designed primarily for **integration and deployment** scenarios. It is intended for projects that need to quickly assemble device-side backend capabilities, standardize service startup, and build custom business logic through Python interfaces.

## Installation

```bash
pip install nauticore
```

## Quick Start

### Run the User Interface
```
python -m nauticore.launch example.veh
```
By default, the UI is available at: 

> http://localhost:9090

### Development

```python
from nauticore.communication import Frontend

frontend = Frontend(
    server_ip="example-server",
    server_port=example_port,
    public_key_source="example/public.pem",
)


@frontend.route_msg("/status")
def handle_status(message):
    print("status:", message)


@frontend.timer(1000)
def publish_heartbeat():
    frontend.publish(
        topic="/heartbeat",
        type_str="std_msgs/String",
        message_dict={"data": "alive"},
    )


frontend.run()
```

