{"adoption": {"forks": 676, "observed_at": "2026-08-28T04:07:59.150638+00:00", "stars": 3393}, "canonical_url": "https://ross.abutalabs.com/products/fluentftp", "card": {"archived": false, "artifact_type": "library", "description": "An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP support, UTF-8 support, Async/await support, Powershell support and more. Written entirely in C#.", "domain": ["developer-tools", "files", "backend", "cross-platform"], "enriched": true, "function": ["http-client", "file-system", "security", "cli"], "health_score": 71, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["robinrodricks/FluentFTP"], "name": "robinrodricks/FluentFTP", "platform": ["dotnet", "cross-platform", "windows"], "pushed_at": "2026-05-27T21:47:27+00:00", "repo": "robinrodricks/FluentFTP", "stars": 3393, "tags": ["ftp", "ftps", "ftp-client", "fxp", "tls", "ssl", "file-transfer", "async", "powershell", "net-standard", "no-dependencies", "linux", "macos"], "topics": ["ftp", "ftp-client", "ftps", "ssl", "tls", "unix", "iis", "net-core", "net-standard", "net-framework", "uwp"], "urls": [], "use_cases": ["upload and download files over ftp or ftps from a .net application", "connect to ftp servers with ssl/tls and client certificates", "transfer files between two ftp servers with fxp", "parse directory listings from unix, iis, proftpd, and other ftp servers", "use an ftp client from powershell scripts", "compute file hashes and checksums over ftp", "manage file permissions and chmod on an ftp server"], "what_it_is": "FluentFTP is a fully managed FTP and FTPS client library for .NET and .NET Standard, written entirely in C# with no external dependencies and optimized for speed. It supports a wide range of FTP server types, secure TLS connections, async/await, FXP server-to-server transfers, proxies, and extensive file management commands.", "when_to_avoid": ["you need SFTP over SSH, which is a different protocol", "you are not working in the .NET ecosystem", "you need a GUI FTP client rather than a programmable library"], "when_to_choose": ["you need a fast, dependency-free FTP/FTPS client in .NET or .NET Standard", "your app must support many FTP server types including mainframe listings", "you want async/await FTP operations or PowerShell automation", "you need FXP server-to-server transfers or FTP proxy support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fluentftp", "repo": "robinrodricks/FluentFTP", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "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:07:59.150638+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:59.150638+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:39:00.090067+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4ceafa382014d521a52ad725f5a64a0512d7cdc613c5747ee65bc00da67ff98f", "fetched_at": "2026-08-28T04:07:59.150638+00:00", "kind": "readme", "missing": false, "url": "https://github.com/robinrodricks/FluentFTP"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 84, "longevity": 100, "rhythm": 8}, "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": 3595, "days_push": 98, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}