# ctor - Rust
Keywords: rust, rustlang, rust-lang, ctor

# Crate ctor [−] [src]

Procedural macro for defining global constructor/destructor functions.

This provides module initialization/teardown functions for Rust (like `__attribute__((constructor))` in C/C++) for Linux, OSX, and Windows via the `#[ctor]` and `#[dtor]` macros.

This library works and has been tested for Linux, OSX and Windows. This library will also work as expected in both `bin` and `cdylib` outputs, ie: the `ctor` and `dtor` will run at executable or library startup/shutdown respectively.

This library currently requires Rust > `1.31.0` at a minimum for the procedural macro support.

## Attribute Macros

ctor | Marks a function or static variable as a library/executable constructor. This uses OS-specific linker sections to call a specific function at load time.
dtor | Marks a function as a library/executable destructor. This uses OS-specific linker sections to call a specific function at termination time.