{"id":13415058,"url":"https://github.com/sebastienros/yessql","last_synced_at":"2025-05-12T20:52:10.845Z","repository":{"id":2330844,"uuid":"3292397","full_name":"sebastienros/yessql","owner":"sebastienros","description":"A .NET document database working on any RDBMS","archived":false,"fork":false,"pushed_at":"2025-04-15T20:23:47.000Z","size":3570,"stargazers_count":1272,"open_issues_count":151,"forks_count":198,"subscribers_count":66,"default_branch":"main","last_synced_at":"2025-04-23T18:48:25.303Z","etag":null,"topics":[],"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/sebastienros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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,"zenodo":null},"funding":{"github":["sebastienros"]}},"created_at":"2012-01-28T18:31:44.000Z","updated_at":"2025-04-23T13:29:04.000Z","dependencies_parsed_at":"2024-04-04T01:26:35.780Z","dependency_job_id":"43500efb-1382-4b41-bb35-ab1daedc73d2","html_url":"https://github.com/sebastienros/yessql","commit_stats":{"total_commits":458,"total_committers":22,"mean_commits":"20.818181818181817","dds":"0.15502183406113534","last_synced_commit":"c0771eb555c67bf419859016cb3563a3540fe7c7"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienros%2Fyessql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienros%2Fyessql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienros%2Fyessql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastienros%2Fyessql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastienros","download_url":"https://codeload.github.com/sebastienros/yessql/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253821481,"owners_count":21969716,"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":[],"created_at":"2024-07-30T21:00:42.446Z","updated_at":"2025-05-12T20:52:10.820Z","avatar_url":"https://github.com/sebastienros.png","language":"C#","funding_links":["https://github.com/sponsors/sebastienros"],"categories":["Frameworks, Libraries and Tools","Database","数据库","others","C\\#","框架, 库和工具"],"sub_categories":["Database","ORM","数据库"],"readme":"YesSql\n=============\n\nA .NET document database interface for relational databases, because in SQL we (still) trust !\n\n[![Build](https://github.com/sebastienros/yessql/actions/workflows/build.yml/badge.svg)](https://github.com/sebastienros/yessql/actions/workflows/build.yml)\n[![NuGet](https://img.shields.io/nuget/v/YesSql.svg)](https://www.nuget.org/packages/YesSql)\n[![MyGet](https://img.shields.io/myget/yessql/vpre/yessql.svg?label=MyGet)](https://www.myget.org/feed/yessql/package/nuget/yessql)\n\nHow does it work ?\n-------------------\n\nYesSql is a .NET Core document database interface over relational databases which allows you to define documents and indexes using plain old CLR objects. The main difference\nwith document databases is that it uses any RDBMS to store them, which gives you all the power of SQL databases\nlike transactions, replication, reporting, ... But the main advantage might be that there is no magic involved, it's pure SQL !\n\nA video about YesSql was recorded and is available here https://www.youtube.com/watch?v=D42eK6CJjF4 \n\nFAQ\n-------------------\n\n### Aren't NoSQL databases also about map/reduce ?\n\nYesSql has support for it too. There is a [sample project](https://github.com/sebastienros/yessql/tree/master/samples/YesSql.Samples.Hi) in the source code, and you'll see that map/reduce is fully supported by looking at the tests.\n\n### How is the database structured ?\n\nThere is a global [Document] table. Each index is a custom class which has its own table. A reduce index also adds a bridge table in order to map many documents. \nInternally YesSql communicates with the database server using [Dapper](https://github.com/StackExchange/dapper-dot-net).\n\n### Dude ! Why another document database ?\n\nI know :/ Well actually I am a big fan of document databases and I am well aware that some like MongoDb and RavenDb are already top-notch ones, but __what if you want a free, transactional .NET document database__ ?\n\n* MongoDb is not transactional, and some applications can't cope with it. RDBMS on the contrary are all transactional. \n* RavenDb (which I am a big fan of) is not free (for most usages). \n* Some companies which have invested a lot in SQL, only trust SQL, and have in-house experts.\n\nSo YesSql might be an answer for the developers who face those restrictions. If you don't care about those then please don't spend one more minute on YesSql, it's useless for you.\n\n### I am sold, where do I start ?\n\nThe documentation is here: https://github.com/sebastienros/yessql/wiki\n\nYou can also take a look at the [sample apps](https://github.com/sebastienros/yessql/tree/master/samples) in the source code.\n\nDevelopment\n-------------------\n\n- Development and pull-requests are done based on the `main` branch.\n- Every build and pull-request are tested against Sqlite, PostgreSQL, SQL Server and MySql.\n- The latest NuGet release is tagged and available in the [releases](https://github.com/sebastienros/yessql/releases) page.\n- The `main` branch is also published on [MyGet](https://www.myget.org/feed/yessql/package/nuget/yessql) automatically.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastienros%2Fyessql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastienros%2Fyessql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastienros%2Fyessql/lists"}