sentry-native
rust-sourcemap
sentry-native | rust-sourcemap | |
---|---|---|
2 | 1 | |
367 | 214 | |
1.9% | 3.7% | |
7.8 | 7.0 | |
2 days ago | about 1 month ago | |
C | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
sentry-native
-
Luau Goes Open-Source
I understand what C bindings means - hence my comment about the lowest common denominator. I'm not deeply familiar with the Lua api so I don't feel comfortable commenting on it, but the sentry C api is a prime example. Yes you can use this API from many different languages, including C++, but you end up writing code like this. You almost always lose type safety, RAII, and introduce error prone, verbose code, such as: sentry_value_t debug_crumb = sentry_value_new_breadcrumb("http", "debug crumb"); sentry_value_set_by_key( debug_crumb, "category", sentry_value_new_string("example!")); sentry_value_set_by_key( debug_crumb, "depth", sentry_value_new_int32(11)); sentry_value_set_by_key( debug_crumb, "level", sentry_value_new_string("debug")); sentry_add_breadcrumb(debug_crumb);
-
Goodbye C++, Hello C
> Put another way, I'd rather fix relatively simple C (which also tends to be simpler code in general) than the monsters created by "modern C++" because they thought the "added safety" would mean they could go crazy with the complexity without adding bugs.
It's completely possible to write C++ code without it being a mess of a template mostrosity and massively overloaded function names. People who write C++ like that would write C filled with macros, void pointers and all the other footguns that C encourages you to use instead.
I've been working with the sentry-native SDK recently [0] which is a C api. It's full of macros, unclear ownership of pointers (in their callback, _you_ must manually free the random pointer, using the right free method for their type, which isn't type checked), custom functions for working with their types (sentry_free, sentry_free_envelope), opaque data types (everythign is a sentry_value_t created by a custom function - to access the data you have to call the right function not just access the member, and this is a runtime check).
Compare [1] (their C api example)
[0] https://github.com/getsentry/sentry-native
rust-sourcemap
-
Performance issue with sourcemap library
Also I tried using this rust library to run decode/encode the same source map json file. It turns out to be much fast than the Haskell code I wrote. It took ~14 secs for decoding and ~3 secs for encoding. So any suggestions?
What are some alternatives?
breakpad - Mirror of Google Breakpad project
self-hosted - Sentry, feature-complete and packaged up for low-volume deployments and proofs-of-concept
GSL - Guidelines Support Library
sourcemap - Implementation of source maps as proposed by Mozilla and Google
cJSON - Ultralightweight JSON parser in ANSI C
sentry-dart - Sentry SDK for Dart and Flutter
score-simple-api-2
sentry-rust - Official Sentry SDK for Rust
tl - The compiler for Teal, a typed dialect of Lua
relay - Sentry event forwarding and ingestion service.
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
sentry-symfony - The official Symfony SDK for Sentry (sentry.io)