{"adoption": {"forks": 229, "observed_at": "2026-08-28T04:03:42.465331+00:00", "stars": 1131}, "canonical_url": "https://ross.abutalabs.com/products/smartsql", "card": {"archived": false, "artifact_type": "library", "description": "SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack  +Dynamic Repository + InvokeSync + Diagnostics", "domain": ["databases", "backend", "web-development", "developer-tools", "microservices"], "enriched": true, "function": ["orm", "caching", "database", "monitoring", "serialization"], "health_score": 99, "homepage": "https://wiki.smartsql.net/", "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["dotnetcore/SmartSql"], "name": "dotnetcore/SmartSql", "platform": ["dotnet", "cross-platform", "windows"], "pushed_at": "2026-08-25T21:43:41+00:00", "repo": "dotnetcore/SmartSql", "stars": 1131, "tags": ["mybatis-inspired", "xml-sql-management", "read-write-splitting", "dynamic-repository", "redis-cache", "sql-mapper", "diagnostics", "apm-integration", "linux", "macos"], "topics": ["orm", "dotnet-core", "cross-platform", "high-performance", "distributed-computing", "redis", "zookeeper", "read-write-separation", "cache", "sql", "smartsql", "dotnet", "dotnetcore", "mybatis", "sqlserver", "mysql", "sqlite", "postgresql", "skywalking", "oracle"], "urls": [], "use_cases": ["manage SQL statements in XML instead of inline strings or LINQ", "write hand-tuned SQL with conditional tags instead of ORM-generated queries", "split reads and writes across database replicas with weighted load balancing", "cache query results in memory or Redis with automatic invalidation", "auto-implement repository interfaces from SQL statement naming conventions", "monitor SQL execution with DiagnosticSource and SkyWalking integration", "generate partial UPDATE statements that only modify changed properties"], "what_it_is": "SmartSql is a MyBatis-inspired ORM for .NET that manages SQL in XML files with dynamic conditional tags, giving developers full control over generated SQL. It bundles caching (memory and Redis), read/write splitting with load balancing, IL-emit dynamic repositories, and diagnostics for APM integration.", "when_to_avoid": ["you prefer LINQ-based ORMs like Entity Framework for code-first modeling", "you want a lightweight micro-ORM like Dapper without XML configuration", "your team dislikes maintaining SQL in XML files"], "when_to_choose": ["you want MyBatis-style XML-managed SQL in a .NET application", "you need absolute control over SQL for performance-critical complex queries", "you want built-in read/write splitting and distributed caching without extra libraries", "you prefer convention-based repositories with minimal boilerplate"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smartsql", "repo": "dotnetcore/SmartSql", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "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:03:42.465331+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:42.465331+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:38:01.989811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e764516ec8c7995b5129e6dae86491f9a2e6f13ab75112908a97669edde4fa2a", "fetched_at": "2026-08-28T04:03:42.465331+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnetcore/SmartSql"}, {"content_hash": "d3ee299ecfb4bf3470902f001a09a5005231994deb3287b61e4570395f629fbf", "fetched_at": "2026-08-29T12:42:27.093402+00:00", "kind": "homepage", "missing": false, "url": "https://wiki.smartsql.net/"}, {"content_hash": "a8538fc27feaf015703815d2a54a93cedb8097eedc9682e5f03beee529b88c9a", "fetched_at": "2026-08-29T12:42:27.102385+00:00", "kind": "site_page", "missing": false, "url": "https://wiki.smartsql.net/guide/changelog"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 60}, "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": 3441, "days_push": 8, "days_rel": 111, "gap_med": 156, "n_releases_24m": 2}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}