#json #protocols #gamedev #api #websocket

neuro-sama

A crate that implements the Neuro-sama game API

13 releases (4 breaking)

new 0.5.0-alpha.3 Jan 19, 2025
0.5.0-alpha.2 Jan 13, 2025
0.4.4 Jan 19, 2025
0.4.2 Dec 29, 2024
0.1.0 Dec 11, 2024

#273 in Game dev

Download history 529/week @ 2024-12-08 42/week @ 2024-12-15 203/week @ 2024-12-29 14/week @ 2025-01-05 327/week @ 2025-01-12

545 downloads per month

0BSD OR MIT OR Apache-2.0

51KB
775 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
  • 0.4.1 - interpret whitespace-only messages as null
  • 0.4.2 - cleanup action schemas in register_actions_raw
  • 0.4.3 - add the strip-trailing-zeroes feature
  • 0.5.0 - update schemars to 1.0

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
~91K SLoC