{"id":15047446,"url":"https://github.com/embeddedartistry/embedded-resources","last_synced_at":"2025-05-16T13:07:32.724Z","repository":{"id":38630860,"uuid":"76132197","full_name":"embeddedartistry/embedded-resources","owner":"embeddedartistry","description":"Embedded Artistry Templates, Documents, and Source Code","archived":false,"fork":false,"pushed_at":"2024-08-26T18:53:54.000Z","size":759,"stargazers_count":632,"open_issues_count":4,"forks_count":299,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-09T10:04:47.232Z","etag":null,"topics":["c","cpp","cpp11","cpp14","embedded","embedded-artistry","embedded-resources","embedded-systems"],"latest_commit_sha":null,"homepage":"https://embeddedartistry.com","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/embeddedartistry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING_template.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT_template.md","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":"2016-12-10T19:11:21.000Z","updated_at":"2025-04-08T02:28:35.000Z","dependencies_parsed_at":"2022-08-09T05:02:30.057Z","dependency_job_id":"b9f6b3e0-ab89-4e02-b92e-933de5963004","html_url":"https://github.com/embeddedartistry/embedded-resources","commit_stats":{"total_commits":256,"total_committers":8,"mean_commits":32.0,"dds":0.30859375,"last_synced_commit":"9733be2eacdc3ede53b593dda9580ac21ca2283a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2Fembedded-resources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2Fembedded-resources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2Fembedded-resources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2Fembedded-resources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embeddedartistry","download_url":"https://codeload.github.com/embeddedartistry/embedded-resources/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254535829,"owners_count":22087399,"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","cpp","cpp11","cpp14","embedded","embedded-artistry","embedded-resources","embedded-systems"],"created_at":"2024-09-24T20:58:28.168Z","updated_at":"2025-05-16T13:07:32.702Z","avatar_url":"https://github.com/embeddedartistry.png","language":"Makefile","readme":"# Embedded Artistry Public Resources\n\nContains templates, documents, and source code examples referenced on https://embeddedartistry.com.\n\n**Table of Contents**\n\n1. [Requirements](#requirements)\n\t1. [git-lfs](#git-lfs)\n\t2. [meson](#meson)\n2. [Structure](#structure)\n3. [Building](#building)\n4. [Tests](#tests)\n\n## Requirements\n\nThis repository uses submodules. You can clone the repository recursively to automatically setup submodules:\n\n```\n$ git clone https://github.com/embeddedartistry/embedded-resources.git --recursive\n```\n\nYou can also initialize submodules after cloning:\n\n```\n$ git submodule update --init --recursive\n```\n\n### git-lfs\n\nThis repository requires git-lfs.  If you do not have this installed, please visit https://git-lfs.github.com\n\nIf you cloned this repository before installing git-lfs, please run `git lfs pull`.  Otherwise clone will automatically perform a `git lfs pull`.\n\n### meson\n\nThis repository builds with [meson](ttps://mesonbuild.com), which requires Python 3 and Ninja.\n\nOn Ubuntu these can be easily installed with the following command:\n\n```\n$ sudo apt-get install python3 python3-pip ninja-build\n```\n\nFor OSX, you can use `brew`:\n\n```\n$ brew install python3 ninja\n```\n\nThe best way to get Meson is through pip:\n\n```\n$ pip3 install meson\n```\n\n## Structure\n\n* `build/`\n\t* Common build scripts and definitions\n* `docs`\n\t* Open-source project templates and reference documentation\n* `examples/`\n\t* `c/`\n\t\t* C examples for the Embedded Artistry website\n\t* `cpp/`\n\t\t* C++ examples for the Embedded Artistry website\n\t* `libc/`\n\t\t* Example libc implementations\n\t* `libcpp/`\n\t\t* Example libcpp implementations\n* `interview/`\n\t* Example interview question implementations\n* `manufacturing/`\n\t* Documents \u0026 templates that are useful for the manufacturing side of the embedded world.\n\n## Building\n\nYou can run `make` from the top level to build all examples.  Output will be placed in a folder called `buildresults/` at the top level.\n\nYou can also use the proper meson syntax:\n\n```\n$ meson buildresults\n$ cd buildresults\n$ ninja\n```\n\nTargets can be built individually by using the ninja interface in the `buildresults/` directory.\n\n```\n$ cd buildresults\n$ ninja interview/bad_c\n```\n\nTo clean the builds, run `make clean` from the project root or `ninja clean` in the `buildresults/` directory.\n\nBinaries will be stored under the `buildresults/` folder at the same hierarchical level as in the source tree.For example, the `bad_c` interview demo application will be in `buildresults/interview/`.\n\n## Tests\n\nThis repository now includes tests. Tests can be run with `make test`, which will build the project, run the tests, and give you the summary report from Meson's test runner. In this scenario, test results are stored in XML files found at `buildresults/test`\n\nTo see human readable output, build the project as you normally would (`make` or `make test`), and then issue this command:\n\n```\n$ ninja -C buildresults/ embedded-resources-tests\nninja: Entering directory `buildresults/'\n[0/1] Running external command embedde...es-tests (wrapped by meson to set env)\n[==========] Running 1 test(s).\n[ RUN      ] test_case\n[       OK ] test_case\n[==========] 1 test(s) run.\n[  PASSED  ] 1 test(s).\n```\n\n## Further Reading\n\n* [Meson](https://www.mesonbuild.com)\n* [Full Embedded Artistry libc implementation](https://github.com/embeddedartistry/libc)\n* [Embedded Artistry libmemory](https://github.com/embeddedartistry/libmemory)\n","funding_links":[],"categories":["Test Frameworks"],"sub_categories":["Embedded-Specific Testing Techniques \u0026 Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedartistry%2Fembedded-resources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedartistry%2Fembedded-resources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedartistry%2Fembedded-resources/lists"}