{"adoption": {"forks": 104, "observed_at": "2026-08-28T04:04:35.348495+00:00", "stars": 1389}, "canonical_url": "https://ross.abutalabs.com/products/fluentdocker", "card": {"archived": false, "artifact_type": "library", "description": "Use docker/podman, compose local and remote via a FluentAPI", "domain": ["developer-tools", "testing"], "enriched": true, "function": ["testing", "developer-tools", "container-runtime", "configuration-management"], "health_score": 95, "homepage": null, "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["mariotoffia/FluentDocker"], "name": "mariotoffia/FluentDocker", "platform": ["cross-platform", "dotnet", "windows"], "pushed_at": "2026-07-19T18:39:51+00:00", "repo": "mariotoffia/FluentDocker", "stars": 1389, "tags": ["docker-compose", "podman", "fluent-api", "integration-testing", "testcontainers-alternative", "csharp", "nuget", "containers", "devops", "docker", "linux", "macos"], "topics": ["docker", "net", "test", "fluent", "compose", "docker-container", "builder", "docker-stack", "dotnetcore", "docker-compose", "podman", "podman-compose"], "urls": [], "use_cases": ["start nginx in a docker container from a .NET test", "run integration tests against real databases in containers", "spin up docker-compose stacks programmatically in C#", "use podman instead of docker in .NET tests", "wait for a container port to be ready before running tests", "manage docker containers from a dotnet application"], "what_it_is": "A .NET library providing a fluent API for managing Docker and Podman containers, images, and compose stacks locally and remotely. It includes testing packages for xUnit, MsTest, and NUnit to spin up containerized dependencies during integration tests.", "when_to_avoid": ["you are not using a .NET language", "you only need to run containers via shell scripts or CI without programmatic control", "you need Kubernetes-level orchestration rather than single-host containers"], "when_to_choose": ["you are on .NET and want Testcontainers-like container lifecycle control with a fluent API", "you need to orchestrate docker-compose or docker-stack from C# code", "you want to support both Docker and Podman from the same codebase"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fluentdocker", "repo": "mariotoffia/FluentDocker", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.348495+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:42.960528+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "adf42d809070e014ee5d461a4a8180cd807e104138dfa21a9faa48a67540d52f", "fetched_at": "2026-08-28T04:04:35.348495+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mariotoffia/FluentDocker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3815, "days_push": 45, "days_rel": 90, "gap_med": 23, "n_releases_24m": 4}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}