As a bonus which came together quite naturally, this PR also introduces a native Rust client and server for Perspective, which allows hosting the Perspective engine in e.g. [axum](), as well as the entirety of the Perspective API as previously implement for JavaScript and Python. The following new crates are introduced:
perspective (native) has been repurposed as the root native-Rust crate, re-exporting the Rust Client and Server APIs as well as conveniences for linking the two with other libraries like [tokio]().
perspective-python (native) contains the Python (pyO3) bindings, replacing the old C++ based perspective-python.
perspective-server (native) wraps the C++ engine for both perspective and perspective-python.
An axum server example has also been added to the examples/ directory.
Python Library
[forthcoming]
Rust Library
As a bonus which came together quite naturally, this PR also introduces a native Rust client and server for Perspective, which allows hosting the Perspective engine in e.g. [
axum
](), as well as the entirety of the Perspective API as previously implement for JavaScript and Python. The following new crates are introduced:perspective
(native) has been repurposed as the root native-Rust crate, re-exporting the Rust Client and Server APIs as well as conveniences for linking the two with other libraries like [tokio
]().perspective-python
(native) contains the Python (pyO3) bindings, replacing the old C++ basedperspective-python
.perspective-server
(native) wraps the C++ engine for bothperspective
andperspective-python
.An
axum
server example has also been added to theexamples/
directory.