Skip to content

POCO serialization#284

Open
cmettler wants to merge 5 commits intoapache:mainfrom
cmettler:feature/serializer
Open

POCO serialization#284
cmettler wants to merge 5 commits intoapache:mainfrom
cmettler:feature/serializer

Conversation

@cmettler
Copy link
Contributor

Resolves #186.

I needed Arrow POCO serialization for an internal cross-language interop project (C# ↔ vgi-rpc-python). I took inspiration from System.Text.Json's source generator and MessagePack-CSharp's attribute model, iterated on it with Claude as a coding assistant, and arrived at this implementation.

Figured it might be useful upstream — please take a look and let me know what you think.

See README.md for full documentation and examples.

Christoph Mettler and others added 5 commits March 11, 2026 13:29
Adds Apache.Arrow.Serialization with a Roslyn incremental source generator
that emits compile-time Arrow schema derivation, serialization, and
deserialization for types marked with [ArrowSerializable].

- Runtime library (Apache.Arrow.Serialization): attributes, helpers,
  IPC extension methods, reflection-based RecordBatchBuilder
- Source generator (Apache.Arrow.Serialization.Generator): code emission
  for 31+ type mappings, polymorphism, custom converters, callbacks
- Test suite: 197 tests covering all supported types and features
- Integrated into solution, central package management, Apache 2.0 headers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Align with upstream CI which uses .NET 8.0 SDK. All 197 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove src/test solution folders from sln so serialization projects
appear at root level like all other projects. Change serialization
library target from net8.0;net10.0 to net8.0 for CI compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

How to serialize POCOs to a Table?

1 participant