5 unstable releases

0.9.0 Jul 4, 2023
0.8.1 Mar 8, 2023
0.8.0 Aug 5, 2022
0.7.1 May 3, 2022
0.7.0 Feb 27, 2022

#7 in #extras

Download history 455/week @ 2024-02-19 181/week @ 2024-02-26 18/week @ 2024-03-04 32/week @ 2024-03-11 6/week @ 2024-03-25 29/week @ 2024-04-01

69 downloads per month
Used in arcdps

MIT/Apache

27KB
603 lines

Arcdps Plugin Bindings Latest Version

This provides arcdps plugin bindings featuring safe, zero-cost abstractions.

Easily integrate into arcdps with just a few lines of code.

Features

Current features include:

  • Versioning plugins via Cargo.toml
  • A simple interface for all callbacks
  • Optional opt out of safe abstractions to directly access the arcdps C interface
  • Imgui interfacing via imgui-rs
  • Logging to arcdps via the log crate
  • unofficial extras bindings

Still in development:

  • Exposing settings from arcdps

Still exploring technical boundaries:

  • Arcdps-like snapping of imgui windows

How to use

A small example showcasing 2 of the many functions provided. If init returns an error, arcdps won't consider the plugin as loaded and will display the error. No other function, except for unofficial-extras functions, will be called afterwards.

use std::error::Error;

use arcdps::UserInfoIter;

arcdps::arcdps_export! {
    name: "example addon",
    sig: 123, // change this to a random number
    unofficial_extras_squad_update: squad_update,
    init: init,
}

fn squad_update(users: UserInfoIter) {
    for user in users.into_iter() {
        println!("{:?}", user);
    }
}

fn init() -> Result<(), Box<dyn Error>> {
    Ok(())
}

Dependencies

~1.5MB
~34K SLoC