{"id":25729935,"url":"https://github.com/cemdervis/linq","last_synced_at":"2025-06-24T09:36:31.549Z","repository":{"id":279481185,"uuid":"938954253","full_name":"cemdervis/linq","owner":"cemdervis","description":"linq is a minimalistic, header-only LINQ library for C++ 17 and newer.","archived":false,"fork":false,"pushed_at":"2025-02-25T19:13:09.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T20:23:32.676Z","etag":null,"topics":["cpp","cpp17","cpp20","linq","modern-cpp","sql"],"latest_commit_sha":null,"homepage":"https://dervis.de/linq","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cemdervis.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":"2025-02-25T18:59:48.000Z","updated_at":"2025-02-25T19:13:13.000Z","dependencies_parsed_at":"2025-02-25T20:23:38.875Z","dependency_job_id":"53e5612f-1cbb-4e5d-b1f5-84e1acc8ad3e","html_url":"https://github.com/cemdervis/linq","commit_stats":null,"previous_names":["cemdervis/linq"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cemdervis/linq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemdervis%2Flinq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemdervis%2Flinq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemdervis%2Flinq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemdervis%2Flinq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cemdervis","download_url":"https://codeload.github.com/cemdervis/linq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cemdervis%2Flinq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261644163,"owners_count":23189004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","cpp17","cpp20","linq","modern-cpp","sql"],"created_at":"2025-02-26T01:46:12.112Z","updated_at":"2025-06-24T09:36:31.343Z","avatar_url":"https://github.com/cemdervis.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# linq - LINQ for C++\n\n![logo](docs/img/logo.png)\n\nlinq is a header-only LINQ library for C++ 17 and newer.\n\nIt has no dependencies and neatly integrates into the STL by taking advantage of modern C++ features.\n\n- offers a simpler alternative to C++20 `\u003cranges\u003e`\n- resolves all type related functionality at compile-time; no virtual dispatch is used\n- uses lazy evaluation, so your queries still work even after you modify the container they're based on\n- focuses on immutability, so your queries stay predictable by minimizing surprising side-effects\n- is efficient in the way it works with your data; it avoids copies and instead moves data wherever it can\n- generates an operation chain at compile-time (supports `constexpr`)\n- works with all generic container types, not just the STL\n\n---\n\n[![Linux-Clang](https://github.com/cemdervis/linq/actions/workflows/build-linux-clang.yml/badge.svg)](https://github.com/cemdervis/linq/actions/workflows/build-linux-clang.yml) [![Linux-GCC](https://github.com/cemdervis/linq/actions/workflows/build-linux-gcc.yml/badge.svg)](https://github.com/cemdervis/linq/actions/workflows/build-linux-gcc.yml) [![macOS-AppleClang](https://github.com/cemdervis/linq/actions/workflows/build-macos-appleclang.yml/badge.svg)](https://github.com/cemdervis/linq/actions/workflows/build-macos-appleclang.yml) [![Windows-MSVC](https://github.com/cemdervis/linq/actions/workflows/build-windows-msvc.yml/badge.svg)](https://github.com/cemdervis/linq/actions/workflows/build-windows-msvc.yml)\n\n## Documentation\n\nThe documentation is available on the [home page](https://dervis.de/linq).\n\n## Example\n\n```cpp linenums=\"1\"\n#include \u003clinq.hpp\u003e\n#include \u003cprint\u003e\n#include \u003cstring\u003e\n#include \u003cvector\u003e\n\nstruct Person {\n  std::string name;\n  int age;\n};\n  \nint main() {\n    auto people = std::vector\u003cPerson\u003e {\n        { \"Person 1\", 20 },\n        { \"Person 2\", 21 },\n        { \"Person 3\", 22 }\n    };\n  \n    auto query = linq::from( \u0026people )\n                .where( []( const Person\u0026 p ) { return p.age \u003e 20; } )\n                .select( []( const Person\u0026 p ) { return p.name; } );\n  \n    for ( const auto\u0026 name : query )\n        std::println( \"{}\", name );\n  \n    return 0;\n}\n```\n\nOutput:\n\n```\nPerson 2\nPerson 3\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemdervis%2Flinq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcemdervis%2Flinq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcemdervis%2Flinq/lists"}