pfr
score
pfr | score | |
---|---|---|
4 | 99 | |
1,263 | 1,426 | |
1.0% | 0.9% | |
7.9 | 9.6 | |
17 days ago | 4 days ago | |
C++ | C++ | |
Boost Software License 1.0 | 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.
pfr
-
Rooting for P1061 "Structured Bindings can introduce a Pack"
This single feature opens a world of new possiblities. For example, it makes implementing "getting the number of fields" trivial. Furthrmore, and much more importantly, it enables turning a struct into a tuple. Currently, this can only be done by enumerating cases (therefore it's not fully generic), as with Boost PFR. By the way, PFR greatly simplifies our codebases, especially for parts with serialization and/or reflection.
-
Minimum viable declarative GUI in C++
The code is relatively short and can be groked with a few coffees: https://github.com/boostorg/pfr/tree/develop/include/boost/pfr ; if you're using C++17 it uses a binary search (https://github.com/boostorg/pfr/blob/develop/include/boost/pfr/detail/fields_count.hpp) to count the number of fields in a struct, by starting by the observation that a likely majorant on the number of fields in a struct is sizeof(the struct) * CHAR_BIT, assuming not too many [[no_unique_address]] tomfooleries. Then once this count is known it's possible to simply map them as a tuple through sheer brute force and destructuring: https://github.com/boostorg/pfr/blob/develop/include/boost/pfr/detail/core17_generated.hpp
-
The Serde Rust Framework
I wonder if the c++ approach of boost.pfr would be portable to rust ? It allows reflection on aggregates without needing to annotate anything: https://github.com/boostorg/pfr
-
Counting the number of fields in an aggregate in C++20
It is an 'interesting' meta-programming problem though (wasted many weeks on it myself, fixed a small gcc bug - a 'uniform init' edge case and filed an issue with magic_get Reflecting array members of aggregate structs).
score
- Learn How to Build Your Own Max for Live Devices
-
Qt Widgets Rendering Pipeline
https://ossia.io uses widgets and qgraphicsscene for the main UI rendering and Qt rhi for the GPU pipeline, and it's performing well enough for our use-cases - I was working on it on a 1080p screen on a Pi4 recently and it certainly felt much much faster and responsive than chrome on the same hardware.
-
Is it possible to do runtime compilation and execution of C code?
I use it for live c++ recompilation in https://ossia.io - all the code is in there. https://github.com/ossia/score/tree/master/src/plugins/score-plugin-jit/JitCpp
-
Show HN: New visual language for teaching kids to code
> I feel like visual programming gets a bad rap because of things like this. As an electronic engineer that used to love LabView and life long user of NI Reaktor and Max/MSP, those tools are fantastic if you don’t approach them with an imperative programming mindset.
aha, in the long run I ended up making https://ossia.io which is as VPL as it can get. Yet it still embeds a LOT of textual languages.
-
CLion Nova Explodes onto the C and C++ Development Scene
For me both VSCode and CLion lag heavily.. whenver I tried CLion it was completely unuseable on my project https://ossia.io which is only 500kloc (and I try to try it pretty much once a year since it was in beta)
-
Visual Node Graph with ImGui
https://ossia.io does some of it, I've been working on a new release that also supports the whole QtQuick stack in the node graph items but you can already combine videos & shader effects
-
Speed Up C++ Compilation
In https://ossia.io with PCH, using clang, ninja, mold, and some artificial split in shared libraries for development builds, I get a compile-edit-run cycle of a couple seconds in general... I wouldn't say it's too much of a problem if you use the tools already available
-
Looking for open source projects to contribute to
If you're interested in multimedia https://ossia.io is always looking for new contributors!
-
New To Lighting Design, Looking for guidance
Tools like Ossia Score, Chataigne and PureData (pd) can also help a ton in building interactive art and triggering other A/V software.
-
Audio Reactive MIDI
here's a simple example of how to do it in https://ossia.io score : https://streamable.com/wkklek
What are some alternatives?
Magic Enum C++ - Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
seq66 - Seq66: Seq24-based live MIDI looper/editor. v. 0.99.12 2024-01-13. NSM support; Linux/Windows/FreeBSD; PDF user manual. Help access to tutorial and PDF. Beta code in portfix branch.
magic_get - std::tuple like methods for user defined types without any macro or boilerplate code
BespokeSynth - Software modular synth
MLV-App - All in one MLV processing app.
atemOSC - Control ATEM video switchers over the network with OSC messages
ComLightInterop - Cross-platform COM interop library for .NET Core 2.1 or newer
BespokeSynth - Software modular synth [Moved to: https://github.com/BespokeSynth/BespokeSynth]
create-rust-app - Set up a modern rust+react web app by running one command.
scheme-for-max - Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
EU4ConsolePatcher - A simple memory patcher which enables the internal developer console in ironman mode
vgmtrans - VGMTrans - a tool to convert proprietary, sequenced videogame music to industry-standard formats