{"id":20077251,"url":"https://github.com/boostorg/nowide","last_synced_at":"2025-04-12T22:36:01.369Z","repository":{"id":2099341,"uuid":"43088379","full_name":"boostorg/nowide","owner":"boostorg","description":"Boost.Nowide - Standard library functions with UTF-8 API on Windows","archived":false,"fork":false,"pushed_at":"2025-04-02T08:03:15.000Z","size":1216,"stargazers_count":178,"open_issues_count":3,"forks_count":52,"subscribers_count":13,"default_branch":"develop","last_synced_at":"2025-04-04T01:58:18.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/boostorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"Flamefire"}},"created_at":"2015-09-24T19:30:31.000Z","updated_at":"2025-04-02T08:03:19.000Z","dependencies_parsed_at":"2023-07-05T18:17:12.268Z","dependency_job_id":"f13f4a7b-4985-48d7-a211-1423e10d6714","html_url":"https://github.com/boostorg/nowide","commit_stats":{"total_commits":528,"total_committers":16,"mean_commits":33.0,"dds":"0.20833333333333337","last_synced_commit":"2972d9fbd8b6e7b20d1a9a3213803549f51199f9"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fnowide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fnowide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fnowide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fnowide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boostorg","download_url":"https://codeload.github.com/boostorg/nowide/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248642618,"owners_count":21138352,"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":[],"created_at":"2024-11-13T15:06:43.093Z","updated_at":"2025-04-12T22:36:01.341Z","avatar_url":"https://github.com/boostorg.png","language":"C++","funding_links":["https://github.com/sponsors/Flamefire"],"categories":[],"sub_categories":[],"readme":"# Boost.Nowide\n\nBranch      | Appveyor | Github | codecov.io | Deps | Docs | Tests |\n------------|----------|--------|------------| ---- | ---- | ----- |\n[master](https://github.com/boostorg/nowide/tree/master)   | [![Build status](https://ci.appveyor.com/api/projects/status/w5sywrekwd66say4/branch/master?svg=true)](https://ci.appveyor.com/project/Flamefire/nowide-fr98b/branch/master)   | [![Build status](https://github.com/boostorg/nowide/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/nowide/actions/workflows/ci.yml)  | [![codecov](https://codecov.io/gh/boostorg/nowide/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/nowide/branch/master)   | [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/nowide.html)   | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](https://www.boost.org/doc/libs/master/libs/nowide/index.html)   | [![Tests](https://img.shields.io/badge/tests-master-brightgreen.svg)](https://www.boost.org/development/tests/master/developer/nowide.html)\n[develop](https://github.com/boostorg/nowide/tree/develop) | [![Build status](https://ci.appveyor.com/api/projects/status/w5sywrekwd66say4/branch/develop?svg=true)](https://ci.appveyor.com/project/Flamefire/nowide-fr98b/branch/develop) | [![Build status](https://github.com/boostorg/nowide/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/nowide/actions/workflows/ci.yml) | [![codecov](https://codecov.io/gh/boostorg/nowide/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/nowide/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/nowide.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](https://www.boost.org/doc/libs/develop/libs/nowide/index.html) | [![Tests](https://img.shields.io/badge/tests-develop-brightgreen.svg)](https://www.boost.org/development/tests/develop/developer/nowide.html)\n\nQuality checks:\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/20464/badge.svg)](https://scan.coverity.com/projects/boostorg-nowide)\n[![CodeFactor](https://www.codefactor.io/repository/github/boostorg/nowide/badge)](https://www.codefactor.io/repository/github/boostorg/nowide)\n\nLibrary for cross-platform, unicode aware programming.\n\nThe library provides an implementation of standard C and C++ library functions, such that their inputs are UTF-8 aware on Windows without requiring to use the Wide API.\n\n### License\n\nDistributed under the [Boost Software License, Version 1.0](https://www.boost.org/LICENSE_1_0.txt).\n\n### Properties\n\n* optional C++17 (filesystem) support\n* Usable outside of Boost via CMake\n* Compiled library on every OS\n\nNote on the last point:\nHaving a compiled library allows cross-platform access to e.g. `setenv` which would not be available when using a `-std=c++nn` flag.\nThis is different to the version available prior to the inclusion in Boost.\n\n### Requirements (All versions)\n\n* **C++11** (or higher) compatible compiler\n    * MSVC 2015 and up work\n    * libstdc++ \u003c 5 is unsupported as it is silently lacking C++11 features\n    * When building with B2 pass e.g. `cxxstd=11` if your compiler defaults to C++03\n\n### Requirements (Boost version)\n\n* Boost (\u003e= 1.56)\n* CMake (when not using as part of Boost) or B2 (otherwise)\n\n### Requirements (Standalone version)\n\nThe [standalone branch](https://github.com/boostorg/nowide/tree/standalone) keeps track of the [develop branch](https://github.com/boostorg/nowide/tree/develop) and can be used without any other part of Boost.\nIt is automatically updated so referring to a specific commit is recommended.\nYou can also use the standalone source archive which is part of every release.\n\n* CMake\n\n# Quickstart\n\nInstead of using the standard library functions use the corresponding member of Boost.Nowide with the same name.\nOn Linux those are (mostly) aliases for the `std` ones, but on Windows they accept UTF-8 as input and use the wide API for the underlying functionality.\n\nExamples:\n- `std::ifstream -\u003e boost::nowide::ifstream`\n- `std::fopen -\u003e boost::nowide::fopen`\n- `std::fclose -\u003e boost::nowide::fclose`\n- `std::getenv -\u003e boost::nowide::getenv`\n- `std::putenv -\u003e boost::nowide::putenv`\n- `std::cout -\u003e boost::nowide::cout`\n\nTo also convert your input arguments to UTF-8 on Windows use:\n\n```\nint main(int argc, char **argv)\n{\n    boost::nowide::args _(argc, argv); // Must use an instance!\n    ...\n}\n```\n\nSee the [Documentation](https://www.boost.org/doc/libs/master/libs/nowide/index.html) for details.\n\n# Compile\n\n## With Boost\n\nCompile and install the Boost super project the usual way via `./b2`.\nThe headers and library will then be available together with all other Boost libraries.\nFrom within CMake you can then use `find_package(Boost COMPONENTS nowide)` and link against `Boost::nowide`.\nNote that `find_package(boost_nowide)` will find the package too, but the above is the canonical way.\n\n## With CMake\n\nBoost.Nowide fully supports CMake.\nSo you can use `add_subdirectory(\"path-to-boost-nowide-repo\")` and link your project against the target `Boost::nowide`.\n\nYou can also pre-compile and install Boost.Nowide via the usual workflow:\n```\nmkdir build \u0026\u0026 cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local\nmake install\n```\n\nA CMake-Config file will be installed alongside Boost.Nowide so `find_package(boost_nowide)` does work out-of the box\n(provided it was installed into a \"standard\" location or its `INSTALL_PREFIX` was added to `CMAKE_PREFIX_PATH`).\n\n# Boost.Filesystem integration\n\nBoost.Nowide integrates with Boost.Filesystem:\n- Call `boost::nowide::nowide_filesystem()` to imbue UTF-8 into Boost.Filesystem (for use by `boost::filesystem::path`) such that narrow strings passed into Boost.Filesystem are treated as UTF-8 on Windows\n\n### More information\n\n* [Ask questions](http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-nowide)\n* [Report bugs](https://github.com/boostorg/nowide/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.\n* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](https://www.boost.org/LICENSE_1_0.txt).\n* Discussions about the library are held on the [Boost developers mailing list](https://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](https://www.boost.org/community/policy.html) before posting and add the `[nowide]` tag at the beginning of the subject line.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fnowide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostorg%2Fnowide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fnowide/lists"}