{"id":21107616,"url":"https://github.com/muqsitnawaz/sfy","last_synced_at":"2026-02-09T14:34:27.549Z","repository":{"id":97866782,"uuid":"271310979","full_name":"muqsitnawaz/sfy","owner":"muqsitnawaz","description":"Post Modern C++ library for string-fying objects","archived":false,"fork":false,"pushed_at":"2020-06-11T20:14:56.000Z","size":110,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-02T14:39:20.472Z","etag":null,"topics":["cpp","cpp20","string"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muqsitnawaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-10T15:14:42.000Z","updated_at":"2025-03-05T23:28:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"8a883812-2b0a-4831-b4d7-03248e3f4a05","html_url":"https://github.com/muqsitnawaz/sfy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/muqsitnawaz/sfy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Fsfy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Fsfy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Fsfy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Fsfy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muqsitnawaz","download_url":"https://codeload.github.com/muqsitnawaz/sfy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Fsfy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29268963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T13:47:44.167Z","status":"ssl_error","status_checked_at":"2026-02-09T13:47:43.721Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp20","string"],"created_at":"2024-11-20T00:41:10.641Z","updated_at":"2026-02-09T14:34:27.543Z","avatar_url":"https://github.com/muqsitnawaz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sfy (pronounced es-phi)\n\n`sfy` is a thin wrapper library (currently in beta) built on top of [fmtlib](https://github.com/fmtlib/fmt) library\n which allows\n you to *`string`i-fy* objects for inspection or debugging purposes. `sfy` implements\n  `sfy::to_string`'s overloads for several built-in standard library types and performs resolution using C++20's\n   concepts (so you pay no-runtime overhead of plain-old templates and get better error diagnostics).\n \n ### Features\n \n `sfy::to_string` works with:\n \n * Fundamental types e.g `int`, `long`, `double` etc\n * Standard container types `std::vector`, `std::map` etc\n * Custom containers types implementing standard interfaces\n * Old c-style arrays or strings e.g `int[N]`, `char[]`\n * Data types such as `std::pair`, `std::tuple` etc\n * Numeric types such as `std::ratio` and `std::complex`\n * Nested types e.g `std::pair\u003cstd::vector, std::unordered_set\u003e`\n \n #### Upcoming\n \n * Support for working with C++20's ranges\n \n ### Examples\n \n  ```C++\n std::complex\u003cdouble\u003e complex(1.0, 2.0);\n sfy::to_string(complex);                  // outputs \"1.0 + 2.0i\";\n  ```\n \n ```C++\nauto pair = std::make_pair(5, 10);\nauto tuple = std::make_tuple(1, 'a', \"Hello world\");\nsfy::to_string(pair);                   // outputs \"(5, 10)\";\nsfy::to_string(tuple);                  // outputs \"(1, 'a', \"Hello world\")\";\n ```\n\n```C++\nstd::tuple\u003cint, std::string, char\u003e tuples[] = { {1, \"hello\", 'h'}, {2, \"world\", 'w'} };\nsfy::to_string(tuples);                 // outputs \"[(1, \"hello\", 'h'), (2, \"world\", 'w')]\"\n```\n\n```C++\nstd::chrono::milliseconds dur(500);\nsfy::to_string(dur);                    // outputs \"500ms\"\n```\n\n```C++\nstd::map\u003cchar, int\u003e map = { {'a', 97}, {'b', 98} };\nsfy::to_string(map);                    // outputs \"{'a': 97, 'b': 98}\");\n```\n\n### Usage\n\n* Copy contents of `./include/` directory to your project's include directory path\n* All functions are implemented in a single header file so you can do `#include \u003csfy/sfy.hppp\u003e`\n\n### Disclaimer\n\n* Currently tested on Clang v10.0.0 only\n* Project is in early beta stage so there could be bugs\n* Recommendations, bug-fixes and PRs are welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuqsitnawaz%2Fsfy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuqsitnawaz%2Fsfy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuqsitnawaz%2Fsfy/lists"}