{"repo":"alnkesq/DuckDbSharp","free":true,"listed":false,"github":"https://github.com/alnkesq/DuckDbSharp","clone":"git clone https://github.com/alnkesq/DuckDbSharp.git","description":"Bidirectional interoperability between DuckDB and .NET","language":"C#","stars":32,"topics":["dotnet","duckdb","parquet","sql"],"license":"AGPL-3.0","category":"databases-storage","readme_excerpt":"DuckDbSharp DuckDbSharp is a bidirectional interoperability layer between DuckDB and .NET. Features - Support for deeply nested structures and lists - Expose .NET methods/collections as table UDFs , or as scalar functions - Execute DuckDB queries from .NET - Generates static types from SQL (incl. field nullness detection) - Dynamic results are supported as well (as dynamic assemblies/types) - Performance-oriented with minimal allocations - Support for both normal and [Flags] enums - Native AOT support - Pass .NET collections as SQL parameters (either as array or as table) - Results are streamed as IEnumerable< - Write DuckDB loadable extensions in C# (work in progress) Notes: - This is not an ADO.NET (System.Data) provider - Rationale: ADO.NET is flat-table oriented (sublists/subfields are not first class citizens, despite these being probably among the best features of DuckDB). - Additionally, ADO.NET is very unergonomic to use unless you add an ORM on top of it. Most existing ORMs however don't work well with sublists/subfields. This library deserializes/serializes directly on top of CLR POCO objects, and can generate (and keep up to date) the type definitions for a better IDE experience. Usage Calling DuckDB from .NET (auto-generated types) See detailed instructions below. Calling DuckDB from .NET (inline sql) You can also use value tuples ( Execute (\"select 'a', 42\") ), but keep in mind that only column order matters, since tuple member names are erased at runtime. Callin","default_branch":null,"files":null,"tree":[],"storefront":"/r/alnkesq","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alnkesq/DuckDbSharp/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}