Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Generate C# bindings via code generation based on the core F# API

Open
#424 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
csharp, fsharp
Domain
tooling

Research direction

Start by reviewing the outdated csharp-object-bindings branch, especially src/Plotly.NET.Codegen, and compare its reflection-based approach with the linked Roslyn incremental generators documentation. The issue needs an approach selected and a current-repository implementation that generates C# bindings from the core F# API; its exact completion criteria are not defined.

Written by the indexing model from the issue text.

Description

Area: CSharp Difficulty: Advanced FeatureRequest FsLab Hackathon 2023 Status: Available
Description

We basically have 2 options here:

(1) Reflection-based F# code generation project

A WIP of this approach can be found on the csharp-object-bindings branch, which is severely out of date, so it might be best to just initialize a new project in the current repo and copy the files over.

The gist is that a well-defined string template for csharp source files is populated based on reflection-based runtime inspection of the F# types, functions and methods.

(2) C# incremental/source generators

here I have no domain knowledge at all, and all tutorials look like pure arcane glyphs to me. I think source generators are now called incremental generators. I think they are aiming to do what we need. I have absolutely no idea how to do this though. If we go this way, we need an experienced C# dev on it.

https://github.com/dotnet/roslyn/blob/main/docs/features/incremental-generators.md

Dominant language
F#
Stars
860
Forks
99
Avg merge
22m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from plotly/Plotly.NET

All issues in plotly/Plotly.NET

Similar issues

More DevTools issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.