• Stars
    star
    118
  • Rank 298,505 (Top 6 %)
  • Language
    Rust
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of small utilities for working with pointer types in Rust.

Pointer utility crates

  • erasable: Erase pointers of their concrete type.
  • rc-borrow: Borrowed forms of Rc and Arc.
  • rc-box: Known unique forms of Rc and Arc.
  • ptr-union: Pointer unions the size of a pointer.
  • slice-dst: Support for custom slice-based DSTs.

Why not triomphe?

Triomphe is a great atomic reference counting library! The main difference between triomphe and these utilities is that triomphe implements a new Arc type that doesn't support weak references (and as such does not have to pay the cost of handling potential weak references), whereas these pointer utilities use the standard library's reference counting types. If you need to work with standard library Arc/Rc, triomphe won't work for you.

If you want a more battle-tested library by the servo developers, use triomphe. If you want small, self-contained extensions to the standard library types, use these pointer utilities.

Additionally, triomphe only supports atomic reference counting. We provide support for both Arc and Rc, as well as Box where applicable.

Minimum Supported Rust Version

We require a minimum Rust version of 1.41.0. This is for an adjustment of local trait impl checking.

The minimum version of Rust will only be incremented with minor version bumps, not patch version bumps, and will be deliberate and clearly noted in change notes.

License

Licensed under either of

at your option.

If you are a highly paid worker at any company that prioritises profit over people, you can still use this crate. I simply wish you will unionise and push back against the obsession for growth, control, and power that is rampant in your workplace. Please take a stand against the horrible working conditions they inflict on your lesser paid colleagues, and more generally their disrespect for the very human rights they claim to fight for.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

More Repositories

1

generativity

Rust
33
star
2

sorbus

An experimental reimplementation of rowan, focused on size efficiency
Rust
24
star
3

pegcel

A syn targetting PEG parser generator
Rust
20
star
4

colored-diff

Rust
17
star
5

katex-doc

XaaS for KaTeX on docs.rs
HTML
13
star
6

strena

An arena-inspired interner for strings
Rust
12
star
7

thin-dst

Rust
11
star
8

great-ci

An example of Great CI for Rust projects
Rust
10
star
9

tracing-filter

A replacement for tracing_subscriber EnvFilter
Rust
9
star
10

storages-api

Rust
9
star
11

build-rs

Convenience wrapper for cargo buildscript input/output
Rust
8
star
12

rust-single

A quick utility for interacting with single-element iterators in rust
Rust
7
star
13

simple-interner

Rust
7
star
14

macro_pub

Rust
7
star
15

fmod-rs

Rust bindings to FMOD Core and FMOD Studio
Rust
7
star
16

tinyc

Rust
6
star
17

string-interner-comparison

Rust
5
star
18

pyrr

Experimental game engine built for Rust on the wasm component model
Rust
3
star
19

windex

An fork of bluss/indexing that provides string support
Rust
3
star
20

tailcallopt

Rust
3
star
21

rustc-miette-adapter

Rust
3
star
22

serde-kdl

A [serde](https://serde.rs/) serializer for [KDL](https://kdl.dev/)
Rust
3
star
23

ButtplugUnreal

Buttplug IoST Protocol client integration and support for Unreal Engine
C++
2
star
24

valid-scalar

Stabilize a `#[rustc_layout_scalar_valid_range]`, cowards
Nu
2
star
25

cstr8

string types that are both valid UTF-8 and nul-terminated
Rust
2
star
26

clap-completions

Rust
2
star
27

SpawnerCraft

SpawnerCraft 3.0, updated for Minecraft 1.9 and 1.10
Java
2
star
28

simple-cache

Rust
1
star
29

usdr

Rust implementation of the Universal Scene Description format
Rust
1
star
30

kdlxx

C++ bindings to the kdl crate
C
1
star
31

dyn-star

Rust
1
star
32

tracing-utils

Utilities for working with and adjacent to tracing
Rust
1
star
33

cargo-testing-panel

A small hacky vscode extension to hook up cargo tests to the testing API
TypeScript
1
star
34

str-index

A sketch of a general Rust string index newtype
Rust
1
star
35

rust-lexical-spec

A proposed lexical specification for rust-lang/rust
Rust
1
star
36

mileage

Rust
1
star
37

SpawnerCraft2

Recoding of SpawnerCraft mod for Minecraft 1.8, using Forge
Java
1
star