# Make Send Sync
[](https://crates.io/crates/make-send-sync)
[](https://docs.rs/make-send-sync)
[](https://unlicense.org/)
[](https://codeberg.org/Aseminaunz/make-send-sync)
[](https://docs.rs/make-send-sync)
Wrapper types to unsafely make any type [`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html) and/or [`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html).
```rust
use ::core::{
cell::UnsafeCell,
ptr,
};
use ::make_send_sync::{
UnsafeSendSync,
UnsafeSync,
};
//!
// A type that is not Send or Sync
let not_thread_safe: *const u8 = ptr::dangling();
//!
let wrapped: UnsafeSendSync<*const u8> = unsafe { UnsafeSendSync::new(not_thread_safe) };
//!
fn assert_send_sync<T: Send + Sync>(_: T) {}
//!
// `wrapper` is Send + Sync, even though `not_thread_safe` is not.
assert_send_sync(wrapped);
//!
// Look! SyncUnsafeCell on stable!
static MY_CELL: UnsafeSync<UnsafeCell<u8>> = unsafe { UnsafeSync::new(UnsafeCell::new(0)) };
```