#+TITLE: rgpot-core
#+OPTIONS: toc:nil todo:nil num:nil author:nil title:nil
#+STARTUP: content

* rgpot-core

Core Rust library for [[https://github.com/OmniPotentRPC/rgpot][rgpot]]:
RPC-based distributed potential energy surface calculations.

** Overview

~rgpot-core~ follows the [[https://docs.metatensor.org/][metatensor]] architecture pattern: a Rust core that
defines fundamental types, exposed via a stable C ABI (auto-generated by
[[https://github.com/mozilla/cbindgen][cbindgen]]), with hand-written C++ RAII wrappers on top.

Data exchange uses the [[https://github.com/dmlc/dlpack][DLPack]] tensor protocol for device-agnostic
interoperability (CPU, CUDA, ROCm).

** Features

| Feature | Description |
|---------+-------------|
| /(default)/ | Core types, DLPack tensor helpers, callback-based potential dispatch |
| =rpc= | Cap'n Proto RPC client and server for distributed calculations |
| =cache= | /(planned)/ Result caching layer |

** Quick Start

#+begin_src toml
[dependencies]
rgpot-core = "0.1"
#+end_src

Enable the RPC feature:

#+begin_src toml
[dependencies]
rgpot-core = { version = "0.1", features = ["rpc"] }
#+end_src

** Documentation

Full documentation is available at [[https://rgpot.rgoswami.me][rgpot.rgoswami.me]].

** License

MIT -- see [[https://github.com/OmniPotentRPC/rgpot/blob/main/LICENSE][LICENSE]] for details.
