{"id":18392171,"url":"https://github.com/lethalbit/sawmill","last_synced_at":"2025-04-12T09:45:22.459Z","repository":{"id":49319167,"uuid":"517278629","full_name":"lethalbit/sawmill","owner":"lethalbit","description":"A structured logging and diagnostics library for C++","archived":false,"fork":false,"pushed_at":"2022-08-02T14:49:58.000Z","size":5917,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-16T01:27:02.864Z","etag":null,"topics":["diagnostics","logging","logging-facade","logging-library","tracing"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lethalbit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"lethalbit","patreon":"lethalbit","ko_fi":"lethalbit"}},"created_at":"2022-07-24T09:23:18.000Z","updated_at":"2022-07-30T09:30:31.000Z","dependencies_parsed_at":"2022-08-22T10:50:22.233Z","dependency_job_id":null,"html_url":"https://github.com/lethalbit/sawmill","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/lethalbit%2Fsawmill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fsawmill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fsawmill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lethalbit%2Fsawmill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lethalbit","download_url":"https://codeload.github.com/lethalbit/sawmill/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248550610,"owners_count":21122930,"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":["diagnostics","logging","logging-facade","logging-library","tracing"],"created_at":"2024-11-06T01:54:33.416Z","updated_at":"2025-04-12T09:45:22.437Z","avatar_url":"https://github.com/lethalbit.png","language":"C++","funding_links":["https://github.com/sponsors/lethalbit","https://patreon.com/lethalbit","https://ko-fi.com/lethalbit"],"categories":[],"sub_categories":[],"readme":"# Sawmill\n\n\u003e **Warning** Lots of performance tuning has yet to be done!\n\u003e Due to the nature of the library, care will be taken to\n\u003e ensure that all of the hot path code will be as performant\n\u003e as possible. **This will take some time**.\n\nSawmill is a framework for instrumenting C++ applications to collect structured event-based diagnostic information, much in the same way that the [tokio](https://tokio.rs/) [tracing](https://tracing.rs/tracing/index.html) library does for rust.\n\n\n## Documentation\n\nComprehensive documentation about sawmill and its usage can be found at [https://lethalbit.github.io/sawmill/](https://lethalbit.github.io/sawmill/).\n\n\n## Configuring and Building\n\nThe following steps describe how to build Sawmill, it should be consistent for Linux, macOS, and Windows, but macOS and Windows remain untested.\n\n\n### Prerequisites\n\nTo build Sawmill, ensure you have the following build time dependencies:\n * git\n * meson\n * ninja\n * g++ \u003e= 11 or clang++ \u003e= 11\n\nOptionally, when also building with binding support (which is the default) you also need:\n * python \u003e= 3.9\n * pybind11 \u003e= 2.7.0\n\n\n### Configuring\n\nYou can build sawmill with the default options, all of which can be found in [`meson_options.txt`](meson_options.txt). You can change these by specifying `-D\u003cOPTION_NAME\u003e=\u003cVALUE\u003e` at initial meson invocation time, or with `meson configure` in the build directory post initial configure.\n\nTo change the install prefix, which is `/usr/local` by default ensure to pass `--prefix \u003cPREFIX\u003e` when running meson for the first time.\n\nIn either case, simply running `meson build` from the root of the repository will be sufficient and place all of the build files in the `build` subdirectory.\n\n### Building\n\nOnce you have configured sawmill appropriately, to simply build and install simply run the following:\n\n```\n$ ninja -C build\n$ ninja -C build test # Optional: Run Tests\n$ ninja -C build install\n```\n\nThis will build and install Sawmill into the default prefix which is `/usr/local`, to change that see the configuration steps above.\n\n### Notes to Package Maintainers\n\nIf you are building sawmill for inclusion in a distributions package system then ensure to set `DESTDIR` prior to running meson install.\n\nThere is also a `bugreport_url` configuration option that is set to this repositories issues tracker by default, it is recommended to change it to your distributions bug tracking page.\n\n## License\n\nSawmill is licensed under the [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html) license, the full text of which can be found in the [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flethalbit%2Fsawmill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flethalbit%2Fsawmill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flethalbit%2Fsawmill/lists"}