You are asking the wrong question.
Every BLE device is able to implement almost any given service, after all it's just a look-up table (ATtribute Table). The juicy parts is how you interact with the content of that table.
An official BT SIG BLE profile has some mandatory features and some optional features. This makes it easier to share the implementation of any such service (the juicy parts), but this is rarely done as the implementation is usually found in a BLE device vendors SDK (under license not to be used on another vendors platform).
Due to the fact that implementing a service is labor intensive, the BLE device vendors will usually have implemented only few official BLE profiles (in their SDKs), with their mandatory features and only some of their optional features.
This in turn means the it is up to the individual developer to implement any service, which highlights the fact that sharing this service with the community is paramount as it is fairly easy to re-use a service cross-platform.
What you are looking for are generic C-implementations of the official BT SIG profiles and common third party profiles, and for that you will have to search manually. There are countless project on github, but finding them is the hard part.