{"id":21025254,"url":"https://github.com/samvv/zen","last_synced_at":"2025-03-13T18:25:22.491Z","repository":{"id":71496978,"uuid":"361172518","full_name":"samvv/Zen","owner":"samvv","description":"Programming in C++ with ease of mind","archived":false,"fork":false,"pushed_at":"2025-02-14T18:46:42.000Z","size":1244,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T15:36:16.122Z","etag":null,"topics":["c-plus-plus","library","productivity","standard-library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samvv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-04-24T13:43:50.000Z","updated_at":"2025-02-14T18:46:46.000Z","dependencies_parsed_at":"2024-07-12T00:24:47.659Z","dependency_job_id":null,"html_url":"https://github.com/samvv/Zen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvv%2FZen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvv%2FZen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvv%2FZen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvv%2FZen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samvv","download_url":"https://codeload.github.com/samvv/Zen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243456653,"owners_count":20293907,"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":["c-plus-plus","library","productivity","standard-library"],"created_at":"2024-11-19T11:31:54.845Z","updated_at":"2025-03-13T18:25:22.470Z","avatar_url":"https://github.com/samvv.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Zen C++ Libraries\n=================\n\n\u003cimg src=\"https://raw.githubusercontent.com/ZenLibraries/ZenLibraries/master/zen-logo.png\" height=\"250\" /\u003e\n\nThe Zen C++ libraries are a set of C++ headers and sources that augment the C++\nstandard library. The libraries try to fill missing pieces in the existing C++\necosystem, based on ideas taken from Haskell and Rust.\n\n⚠️🧪 These libraries are experimental. They require a modern C++ compiler that\nsupports at least C++20. The API may break regularly with the release of new\nversions. If you plan to make use of them right now, expect to refactor your\ncode regularly.\n\n### What are the dangers?\n\n - _Not all control flow paths have been tested._ We simply don't have the\n   scale to add test cases for all possible ways in which this library may be\n   used. You are encouraged, however, to use this library and report any issues\n   you find in the issue tracker. The more people use this library, the more\n   stable it will get.\n - _New updates might need a small refactor of your code._ For example, a\n   better `zen::either\u003cL, R\u003e` might require you to use strucutred binding\n   declarations instead of using the dereferce operator. Only use this library\n   if your team has enough bandwidth to keep in sync.\n\nUse this library only if you feel like these drawbacks are justified for the\nproject you're working on.\n\n## Installation and Usage \n\nWe support Meson and CMake. Currently, the preferred method for using these\nlibraries is by downloading a recent tarball of the repository's source and\nchecking in the sources into your project's version control system.\n\n**If you're building a library that uses Zen++ internally, it is highly\nrecommended to define a custom Zen++ namespace.** Doing so will avoid conflicts\nwith dependencies that use a different version of these libraries. For\ninstance, if your project has a namespace `mylib`, you would define the Zen\nnamespace as `mylib::zen`.\n\nMeson is the recommended choice for setting up your project. Download a tarball\nof this repository and drop the contents in `subprojects/zen`. Next, adjust the\nfollowing example to match your project setup.\n\n**meson.build**\n```meson\nproject('myproject', 'cxx')\n\nzen_proj = subproject('zen', default_options: ['namespace=mylib::zen'])\nzen_dep = zen_proj.get_variable('zen_dep')\n\nlibrary('mylib', dependencies: zen_dep)\n```\n\nCMake is also supported, although we really recommend using Meson. CMake does\nnot play nice with in-source subprojects because there's no elegant way to\nemulate Meson's `default_options`. Until we have figured out how to do it\nproperly, you might want to use the following.\n\n**CMakeLists.txt**\n```cmake\ncmake_minimum_required(VERSION 3.10)\n\nproject(MyProject CXX)\n\n# This will overwrite any value that might previously have been set.\nset(ZEN_NAMESPACE mylib::zen CACHE INTERNAL \"The Zen++ namespace this project will use\" FORCE)\n\nadd_subdirectory(third_party/zen EXCLUDE_FROM_ALL)\n\nadd_library(mylib src/main.cc)\n\ntarget_link_libraries(mylib zen)\n```\n\n## Documentation\n\nDocumentation will soon be available on [the official website][1]. For now, you\nwill have to consult the header files in `zen/` to learn more.\nAlternatively, you can try to build the documentation locally using [Doxygen][2].\n\n## License\n\nThis library is licensed under Apache 2.0 license. Briefly put, you are allowed\nto use this library commercially as long as you give due credit to the authors\nthat put their time and energy in building this.\n\nSee [the LICENSE file][3] for more information.\n\n[1]: https://zencpp.github.io/\n[2]: http://www.doxygen.nl/\n[3]: https://github.com/ZenLibraries/ZenLibraries/blob/master/LICENSE\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvv%2Fzen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamvv%2Fzen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvv%2Fzen/lists"}