Simple C++ library to interact with Steam client file formats and the Steam Deck
A nice and easy to use C++ library to interact with Steam and its file formats. Mainly intended for the Steam Deck but it will work elsewhere too
std::vector<u8> vdfFileContent = /* ... */;
steam::VDF vdf(vdfFileContent);
// Print game name of first entry
auto firstGameName = vdf["shortcuts"]["0"]["AppName"].string();
std::printf("%s", firstGameName.c_str());
// Hide first game from UI
vdf["shortcuts"]["0"]["IsHidden"] = true;
// Convert back to binary representation
auto binaryData = vdf.dump();
// Print vdf as formatted data
std::printf("%s", vdf.format().c_str());
Check out the /test folder for more examples