{"id":15136930,"url":"https://github.com/sebastianbach/full-stack","last_synced_at":"2026-01-18T20:33:29.009Z","repository":{"id":144520989,"uuid":"601278542","full_name":"SebastianBach/full-stack","owner":"SebastianBach","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-30T15:37:37.000Z","size":205,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T03:45:26.860Z","etag":null,"topics":["compile-time-testing","conan","cpp","cpp20","docker","flask","full-stack","multi-stage-build","python-c-api","python3","webassembly"],"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/SebastianBach.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":"2023-02-13T18:27:52.000Z","updated_at":"2024-04-27T14:03:48.000Z","dependencies_parsed_at":"2024-03-10T13:26:02.575Z","dependency_job_id":"7c376be9-7d4c-4d27-9451-7d89b6ba63fb","html_url":"https://github.com/SebastianBach/full-stack","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"dd6eacaee76175430eae797b619f73f0e3bd90ec"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianBach%2Ffull-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianBach%2Ffull-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianBach%2Ffull-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianBach%2Ffull-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SebastianBach","download_url":"https://codeload.github.com/SebastianBach/full-stack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430835,"owners_count":20937873,"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":["compile-time-testing","conan","cpp","cpp20","docker","flask","full-stack","multi-stage-build","python-c-api","python3","webassembly"],"created_at":"2024-09-26T06:41:50.706Z","updated_at":"2026-01-18T20:33:28.981Z","avatar_url":"https://github.com/SebastianBach.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![builds](https://github.com/SebastianBach/full-stack/actions/workflows/build.yml/badge.svg)](https://github.com/SebastianBach/full-stack/actions/workflows/build.yml)\n\nCoverage: https://sebastianbach.github.io/full-stack/coverage.html\n\n# About\n\nYou have a simple, nice, useful C++ function. How do you make it available to consumers?\n\n# Content\n\nThe *full stack* contains:\n\n* A C++ header-only library with a ```constexpr``` function.\n* A compile-time unit test that tests the above function.\n* A command line utility to handle command line arguments to the function.\n* A Python UI application that provides a front-end to this command-line tool.\n* A command line tool to handle interactive data with the function.\n* A command line tool to process the contents of a given file with the function.\n* A static library encapsulating the function.\n* A unit test for this static library.\n* A sample project for this static library.\n* A C++ QT5 UI application based on the static library.\n* A *Conan 2* package containing the static library.\n* A test for this *Conan* package.\n* A dynamic library.\n* A unit test for this dynamic library.\n* A Python UI application that uses this dynamic library.\n* A Python-based Flask web application that provides a web interface and REST API to the above command line tool.\n* An HTML/JavaScript front-end that queries the above REST API.\n* A *Docker* container containing the above Flask web application.\n* A Python module implemented using the Python C API.\n* A unit test that tests this module.\n* A *Sphinx* documentation for this module.\n* A *Jupyter notebook* showing how to use this module.\n* A *marimo* notebook using this module.\n* A Python UI application that uses this module.\n* A WebAssembly binary library and associated JavaScript code.\n* An HTML/JavaScript frontend that uses the above WebAssembly library.\n* A static library that implements a custom scripting language.\n* A unit test for this static library.\n* A console application for that scripting language.\n* An interpreter that executes scripts in the custom scripting language.\n* A Python-based IDE front-end for this script interpreter.\n* A compiler that converts scripts in the custom scripting language into bytecode.\n* A runtime that executes this bytecode.\n* A transcompiler that creates Python or C++ code based on a given script written in the custom scripting language.\n* A C-wrapper library for the C++ function.\n* A unit test that tests this C-wrapper library.\n* A program written in Assembly language that utilizes this C-wrapper library.\n* A *Rust* command line tool calling the C-wrapper library function.\n* A Java Native Interface Library to extend Java.\n* A unit test for that library.\n* A *Java* command line tool using that library.\n* A *Windows* utility library.\n* A unit test for this utility library.\n* A *Windows* system tray app using the utility library.\n* An *Android* app.\n\n```mermaid\n  flowchart LR;\n\n    F(C++ Function) --\u003e CUT[Compile Time Unit Tests];\n\n    F --\u003e CLI1[Command Line Tool A]\n    F --\u003e CLI2[Command Line Tool B]\n    F --\u003e CLI3[Command Line Tool C]\n\n    CLI1 --\u003e PYAPP2[Python UI App]\n\n    F --\u003e LIB(Static Library)\n    \n    subgraph SDK\n    LIB --\u003e DOXYGEN(Doxygen Documentation)\n    LIB --\u003e LIBEX[Static Lib Example Project]\n    end\n\n    LIB --\u003e LIBTEST[Static Library Unit Test]\n    LIB --\u003e C(Conan Package)\n\n    LIB --\u003e QTCPP[C++ UI App]\n\n    F --\u003e DLL(Dynamic Library)\n    DLL --\u003e DLLTEST[Dynamic Library Unit Test]\n    DLL --\u003e QTPYDLL[Python UI App]\n\n    C --\u003e CT[Conan Package Test]\n\n    F --\u003e PY(Python Module)\n\n    subgraph docker container\n    CLI1 --\u003e SERVER[Flask Web-App]\n    SERVER --\u003e FRONT[Front End]\n    end\n\n    PY --\u003e PYTEST[Python Module Unit Test]\n    PY --\u003e SPHINX(Sphinx Documentation)\n    PY --\u003e NOTEBOOK[Jupyter Notebook] \n    PY --\u003e MARIMO[Marimo Notebook]  \n    PY --\u003e PYAPP[Python UI App]\n\n    F --\u003e WASM(WebAssembly + JavaScript)\n\n    WASM --\u003e WASMF[Front End]\n\n    F --\u003e SCRIPTLIB(Script Library)\n\n    SCRIPTLIB --\u003e SCRIPT_TEST[Script Library Unit Test]\n    SCRIPTLIB --\u003e SCRIPT_CONSOLE[Console]\n    SCRIPTLIB --\u003e SCRIPT_INTERPRETER[Interpreter]\n    SCRIPT_INTERPRETER --\u003e SCRIPT_IDE[IDE]\n    SCRIPTLIB --\u003e SCRIPT_COMPILER[Compiler]\n    SCRIPTLIB --\u003e SCRIPT_RUNTIME[Runtime]\n    SCRIPTLIB --\u003e SCRIPT_CONVERT[Transcompiler]\n\n    F --\u003e CWRAPPER(C Wrapper Lib)\n    CWRAPPER --\u003e CWRAPPER_TEST[C Wrapper Unit Test]\n    CWRAPPER --\u003e RUST_APP[Rust Command Line Tool]  \n    CWRAPPER --\u003e ASM[Assembly Program] \n\n    F --\u003e JAVA_LIB(Java Native Interface Library)\n    JAVA_LIB --\u003e JAVA_UNIT_TEST[Java Unit Test]  \n    JAVA_LIB --\u003e JAVA_APP[Java CLI Tool] \n\n    F --\u003e WIN_LIB(Windows Utility Library)\n    WIN_LIB --\u003e WIN_LIB_TEST[Library Unit Test]\n    WIN_LIB --\u003e WIN_TRAY[Windows System Tray Tool]\n\n    F --\u003e ANDROID[Android App] \n```\n\n# Build\n\nSee the [build instructions](doc/build.md) on how to build the included software.\n\n# Usage\n\nSee the [user guide](doc/user_guide.md) on how to use the included software.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianbach%2Ffull-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastianbach%2Ffull-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianbach%2Ffull-stack/lists"}