Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 17 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ members = [
"bon",
"bon-cli",
"bon-macros",
"e2e-tests",
"bon-sandbox",
"website/doctests",
]
resolver = "2"

Expand Down
10 changes: 10 additions & 0 deletions README.v3.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,16 @@ This project was heavily inspired by such awesome crates as [`buildstructor`](ht

See [alternatives](https://bon-rs.com/guide/alternatives) for comparison.

## Who's Using `bon`?

Some notable users:

- [`crates.io` backend](https://github.com/rust-lang/crates.io)
- [`ractor`](https://github.com/slawlor/ractor)
- [`comrak`](https://github.com/kivikakk/comrak)
- [`soldeer`](https://github.com/mario-eth/soldeer) (package manager endorsed by [`foundry`](https://github.com/foundry-rs/foundry))
- [`tachyonfx`](https://github.com/junkdog/tachyonfx)

## Getting Help

If you can't figure something out, consult the docs and maybe use the `🔍 Search` bar on our [docs website](https://bon-rs.com). You may also create an issue or a discussion on the [Github repository](https://github.com/elastio/bon) for help or write us a message on [Discord](https://bon-rs.com/discord).
Expand Down
8 changes: 2 additions & 6 deletions benchmarks/compilation/codegen/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ fn main() -> anyhow::Result<()> {

let src_dir = bench_dir.join("src");

let structs_number = 100;
let fields_number = 10;
let structs_number = 10;
let fields_number = 50;

std::fs::write(
src_dir.join(format!(
Expand Down Expand Up @@ -51,10 +51,6 @@ fn structs_n_fields_n(structs_number: usize, fields_number: usize) -> TokenStrea
),
derive(crate::Builder),
)]
#[cfg_attr(
feature = "bon-overwritable",
builder(on(_, overwritable)),
)]
pub struct #struct_name {
#( #field_names: i32, )*
}
Expand Down
22 changes: 10 additions & 12 deletions benchmarks/compilation/results.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
| Command | Mean [s] | Min [s] | Max [s] | Relative |
| :--------------------------------------- | ------------: | ------: | ------: | -----------: |
| `structs_100_fields_10 bon` | 2.319 ± 0.021 | 2.278 | 2.350 | 22.80 ± 2.99 |
| `structs_100_fields_10 bon-overwritable` | 2.240 ± 0.021 | 2.203 | 2.274 | 22.03 ± 2.89 |
| `structs_100_fields_10 typed-builder` | 1.849 ± 0.011 | 1.838 | 1.878 | 18.18 ± 2.38 |
| `structs_100_fields_10 derive_builder` | 1.022 ± 0.016 | 0.995 | 1.043 | 10.05 ± 1.32 |
| `structs_100_fields_10 ` | 0.104 ± 0.012 | 0.088 | 0.124 | 1.02 ± 0.18 |
| `structs_10_fields_50 bon` | 2.063 ± 0.017 | 2.044 | 2.100 | 20.28 ± 2.66 |
| `structs_10_fields_50 bon-overwritable` | 2.029 ± 0.029 | 1.998 | 2.102 | 19.95 ± 2.62 |
| `structs_10_fields_50 typed-builder` | 2.076 ± 0.016 | 2.048 | 2.101 | 20.41 ± 2.67 |
| `structs_10_fields_50 derive_builder` | 0.432 ± 0.016 | 0.400 | 0.458 | 4.25 ± 0.58 |
| `structs_10_fields_50 ` | 0.102 ± 0.013 | 0.084 | 0.130 | 1.00 |
| Command | Mean [s] | Min [s] | Max [s] | Relative |
| :------------------------------------- | ------------: | ------: | ------: | -----------: |
| `structs_100_fields_10 bon` | 2.340 ± 0.019 | 2.315 | 2.364 | 20.86 ± 1.37 |
| `structs_100_fields_10 typed-builder` | 1.831 ± 0.015 | 1.806 | 1.859 | 16.32 ± 1.07 |
| `structs_100_fields_10 derive_builder` | 1.026 ± 0.013 | 1.009 | 1.048 | 9.14 ± 0.61 |
| `structs_100_fields_10 ` | 0.113 ± 0.010 | 0.092 | 0.125 | 1.01 ± 0.11 |
| `structs_10_fields_50 bon` | 2.096 ± 0.009 | 2.080 | 2.109 | 18.69 ± 1.22 |
| `structs_10_fields_50 typed-builder` | 2.088 ± 0.014 | 2.067 | 2.115 | 18.61 ± 1.22 |
| `structs_10_fields_50 derive_builder` | 0.449 ± 0.022 | 0.391 | 0.470 | 4.00 ± 0.33 |
| `structs_10_fields_50 ` | 0.112 ± 0.007 | 0.086 | 0.116 | 1.00 |
1 change: 0 additions & 1 deletion benchmarks/compilation/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ set -euxo pipefail

macros=(
bon
bon-overwritable
typed-builder
derive_builder
)
Expand Down
Loading