#json #protocols #gamedev #api

neuro-sama

A crate that implements the Neuro-sama game API

6 releases (3 breaking)

new 0.4.0 Dec 12, 2024
0.3.1 Dec 12, 2024
0.2.1 Dec 11, 2024
0.1.0 Dec 11, 2024

#238 in Game dev

Download history 799/week @ 2024-12-09

799 downloads per month

0BSD OR MIT OR Apache-2.0

53KB
833 lines

crates.io docs.rs

neuro_sama, the Rust crate

A Rust crate that implements the Neuro-sama game API. It doesn't handle WebSocket communications itself, instead, it works with tungstenite messages, which you can handle whichever way you want.

There's a high-level API and a low-level API available. The low-level API simply defines the API schema, it's available in the schema submodule. The high-level API is hopefully easier and safer to work with, it's available in the game submodule.

Optionally, a proposals feature is available that enables proposed commands that have not yet been accepted or implemented - you can use it for testing, but the feature is excluded from semver guarantees.

Changelog

  • 0.1.0 - initial release
  • 0.2.0 - reworked the API a bit to make it easier to work with and more semver-compatible, and added handling for the proposed actions/reregister_all command.
  • 0.2.1 - generate a leaner JSON schema that's hopefully less confusing
  • 0.3.0 - add a proposals feature.
  • 0.3.1 - don't require Arc for Api::new
  • 0.4.0 - convert Api from a separate object into a sealed trait

License

TL;DR do whatever you want.

Licensed under either the BSD Zero Clause License (https://opensource.org/licenses/0BSD), the Apache 2.0 License (http://www.apache.org/licenses/LICENSE-2.0) or the MIT License (http://opensource.org/licenses/MIT), at your choice.

Dependencies

~3.5–4.5MB
~89K SLoC