criterion.rs
Optic
Our great sponsors
criterion.rs | Optic | |
---|---|---|
30 | 12 | |
4,153 | 1,280 | |
- | 1.9% | |
6.5 | 9.8 | |
13 days ago | 5 days ago | |
Rust | TypeScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
criterion.rs
-
How to benchmark in Rust with libtest bench
The three popular options for benchmarking in Rust are: libtest bench, Criterion, and Iai.
-
Divan: Fast and Simple Benchmarking for Rust
Holy crap. I was just writing a blog to complain about the state of Rust benchmarking and I think this might address most of my points. The biggest one is the ability to have benchmarks collocated within the library like tests which is the biggest annoyance.
It’s also nice to see that it can report multiple counters in parallel. I put up a similar feature[1] for criterion recently but I fear the project isn’t being maintained anymore…
Haven’t looked deeply into divan yet but the other requirements I have for criterion’s power is to run tests with statistical guarantees on the results, terminate quickly when statistical significance is reached (—quick), provide a comparison of the delta from a previous benchmark, and to run async code. Wonder how this stacks up.
[1] https://github.com/bheisler/criterion.rs/pull/722
-
how expensive is an operation?
criterion for benchmarks,
- Autometrics 0.4: Spot commits that introduce errors or slow down your application
- Performance-related question
-
How can I further optimize this file parser? (std, serde, diesel)
For an extra optimization, you might look into techniques like branchless code, turning array of structs into struct of arrays for better cache utilization/lowering branch mispredictions. There is many talks on YouTube how to actually measure and improve performance of native code. And for rust there is a criterion.rs for benchmarking.
- making a virtual machine in rust
-
How much does Rust's bounds checking cost?
https://github.com/bheisler/criterion.rs is good for tests like that. It will give you much more than a single number and handle things like outliers. This makes identifying noisy tests simpler.
-
Tips in using criterion to properly benchmark a database?
I have tried many ways but I think is not possible. I put it on https://github.com/bheisler/criterion.rs/issues/631.
-
Rust 1.64 Became 10-20% Faster On Windows
Criterion is still the gold standard.
Pros for Criterion over the stdlib: https://github.com/bheisler/criterion.rs#features
Downsides of Criterion: https://bheisler.github.io/criterion.rs/book/user_guide/know...
Optic
-
Show HN: LintGPT – Write API Style Guides in Natural Language
- Minimizing API calls. The first time you run LintGPT it is pretty slow because it has to run every rule across every part of the API specification (1000s of calls). But we shouldn’t have to repeat that work. Most of the time parameters, properties, etc don’t change and neither do the rules. We’re building caching into our web app to make this fast / save $ for end users.
Happy to answer any questions. I really think there’s a huge use case here for linting all kinds of code, config, database schemas, policies in ways that were never possible before. And personally, I like the idea of having these smart tools guiding me towards making my work better vs generating it all for me — idk something about that just feels good.
[0] https://github.com/opticdev/optic
- Show HN: Generate OpenAPI from Your Tests
-
Testing for Breaking Changes in Fastify APIs
Recently I was approached by a team that needed help testing their Fastify API for breaking changes. Fastify was making it easy to quickly ship a lot of new functionality, but breaking changes were making it through Code Reviews. They were not finding out the changes were breaking until a consumer emailed them — not good. The developer who reached out saw my work on the Optic project and asked for help.
- Get notified when the APIs you depend on change.
-
What is OpenAPI?
Optic
-
"Git for APIs"?
I'm really happy to say I've started a new job at Optic, and with this comes the learning process of getting more depth with new technology and its use cases.
-
How do you usually get API documentation for your apps?
I’ve been working on this open source project https://github.com/opticdev/optic
-
Why Your Company's Documentation Sucks
Our documentation sucks because it is time-consuming to do documentation properly.
I am hoping to fix this by introducing Optic [0] to automatically handle generating API diffs.
[0]: https://github.com/opticdev/optic
-
Paw is joining Rapid API
I've recently been using Optic (https://useoptic.com/) which does some cool things in the API tools space, there's potential there to have a CLI UI and they have the history part already but similar to what people are saying here about the web UIs, I don't like theirs much.
-
Rust made my open source project 1000x faster
I'm assuming it is the url mentioned for the language chart: https://github.com/opticdev/optic
What are some alternatives?
hyperfine - A command-line benchmarking tool
Swagger Client - Javascript library to connect to swagger-enabled APIs via browser or nodejs
sqlglot - Python SQL Parser and Transpiler
FarFetch - Modern Fetch API wrapper for simplicity.
glassbench - A micro-benchmark framework to use with cargo bench
Rails Ranger - 🤠 An opinionated AJAX client for Ruby on Rails APIs
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
apitest - Apitest is declarative api testing tool with JSON-like DSL.
tracing - Application level tracing for Rust.
jquery.rest - A jQuery plugin for easy consumption of RESTful APIs
tungstenite-rs - Lightweight stream-based WebSocket implementation for Rust.
wretch - A tiny wrapper built around fetch with an intuitive syntax. :candy: