7 releases
Uses new Rust 2024
0.3.1 | Jun 25, 2025 |
---|---|
0.3.0 | Jun 12, 2025 |
0.2.9 | Jun 8, 2025 |
0.2.8 | May 30, 2025 |
#364 in Database interfaces
1,292 downloads per month
Used in 39 crates
(via scsys)
170KB
4K
SLoC
scsys
Welcome to scsys
, a collection of useful utilities, types, and other primitives that are used in various projects developed by Scattered Systems. The library is designed to be a general-purpose utility library that can be used in any Rust project, aiming to provide a standardized set of tools that can be used to build robust and reliable software.
Usage
Before you start using scsys
, make sure to add it as a dependency in your Cargo.toml
file. You can do this by adding the following lines:
[dependencies.scsys]
default-features = true
features = [
"derive",
]
version = "0.2.x"
Examples
For more detailed examples, please visit the examples directory in the repository. Below are some brief examples highlighting certain features of the library.
Example 1: Using the VariantConstructors
derive macro
The VariantConstructors
derive macro can be used to automatically generate functional accessors for named fields within a given structure. For example, given the following structure:
#[derive(
Clone,
Copy,
Debug,
Default,
Eq,
Hash,
Ord,
PartialEq,
PartialOrd,
scsys::VariantConstructors
)
pub enum Sample {
A,
B(usize),
C { x: f32, y: f32 },
}
we can automatically generate a functional constructors for each of the Sample
variants:
let a = Sample::a();
let b = Sample::b(42);
let c = Sample::c(1.0, 2.0);
assert_eq!(a, Sample::A);
assert_eq!(b, Sample::B(42));
assert_eq!(c, Sample::C { x: 1.0, y: 2.0 });
Getting Started
To get started with scsys
, you can check out the QUICKSTART.md file, which provides a step-by-step guide on how to set up your development environment and start using the library.
License
Licensed under the Apache License, Version 2.0, (LICENSE-APACHE)
Contribution
Contributions are welcome, however, ensure that you have read the CONTRIBUTING.md file before submitting a pull request.
Dependencies
~3.5–8MB
~140K SLoC