Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native AOT compatibility for FastEndpoints #565

Open
Amit-limbasiya opened this issue Dec 21, 2023 · 7 comments
Open

Native AOT compatibility for FastEndpoints #565

Amit-limbasiya opened this issue Dec 21, 2023 · 7 comments
Labels
enhancement New feature or request up for grabs community contribution is needed for this issue

Comments

@Amit-limbasiya
Copy link

Hi owner, contributers and members,
I am reaching out to you regarding a feature request and seeking confirmation on the release plans for a NativeAot-compatible version of FastEndpoints.

Currently, when utilizing FastEndpoints to create a web API with Native Aot, an error is encountered, as illustrated in the screenshot below:
image

I am keen to know if there are any upcoming plans to address this compatibility issue with NativeAot. It would be greatly beneficial for our use case, and I believe it could enhance the overall utility of FastEndpoints.

I would appreciate any information you could provide regarding the potential inclusion of NativeAot compatibility in future releases.

cc: @goldytech

@dj-nitehawk
Copy link
Member

this is where we're at regarding the native aot support discussion.

some preliminary work has already begun in bulding a source generator for the request/model binder in FE.

however, even if we succeed in building source generators for all the components of FE that uses reflection, it won't most likely be available for free.

the amount of effort necessary to build and maintain complex source generators is massive and we also need to raise funds to sustain the project as the current sponsorship level is nowhere near where it's expected to be.

so we're thinking of building a premium version of FE that's fully native aot compatible (+ a few more bells and whistles) which would most likely be priced at around $100 per month. the thinking behind this amount is that if a certain business/company can afford to pay for cloud functions, they'd most probably be able to afford and extra $100 to benefit from faster cold boots.

however, will offer it for free if the sponsorship level reaches the current monthly goal.

alternatively, will gladly accept PRs from the community.

the bottom line is: native aot is a niche feature that only benefits web apps/apis that run in cloud functions with a cold boot problem and none of the core maintainers of FE are willing to put in the humongous amount of work necessary to solve a problem that doesn't really concern us in our daily work.

@dj-nitehawk
Copy link
Member

let me also take this opportunity to guage the interest in a premium native aot version of fastendpoints before we actually spend any time on it...

do you actually have a cold start problem?
would your company be willing to support the effort by subscribing to a monthly premium of $100?

if so, go ahead and react to this message with a ❤️ and if enough people are interested, i'm pretty sure we can achieve it within a 3 to 4 months timeframe.

@dj-nitehawk dj-nitehawk added the enhancement New feature or request label Dec 21, 2023
@dj-nitehawk dj-nitehawk changed the title Inquiry Regarding NativeAot Compatibility in FastEndpoint's Future Releases Native AOT Compatibility for FastEndpoints Dec 21, 2023
@dj-nitehawk dj-nitehawk changed the title Native AOT Compatibility for FastEndpoints Native AOT compatibility for FastEndpoints Dec 21, 2023
@mortenp-elkjop
Copy link

let me also take this opportunity to guage the interest in a premium native aot version of fastendpoints before we actually spend any time on it...

do you actually have a cold start problem? would your company be willing to support the effort by subscribing to a monthly premium of $100?

if so, go ahead and react to this message with a ❤️ and if enough people are interested, i'm pretty sure we can achieve it within a 3 to 4 months timeframe.

I see you didn't get a lot of responses here. I absolutely understand and support your need to get something for committing to this much extra work.

Speaking for myself, the need is actually opposite of what your assumption is. When I work with larger, established clients, they usually have running containers in Azure or AWS. Startup time is not an issue. The need for small size and quick cold start is usually for small clients or side-gigs where I am running on serverless to save cost during idle times. Which means that a commitment of a regular monthly fee is not ideal. An upfront fee that gives eternal license and 12 months of included updates for example would be a more predictable model for these scenarios in my humble opinion (for example how JetBrains license their IDEs).

@dj-nitehawk
Copy link
Member

@mortenp-elkjop

greatly appreciate that insight.
and yes, i agree that an eternal license with 12 months free upgrades is a fair way to go about it.

my wish hopefully is that the sponsorship base will eventually grow to a point where we can afford a couple more staff members and we will rewrite FE in a native aot friendly manner for the benefit of the masses.

who knows, maybe microsoft might even come out with some magical improvements to the reflection apis which would be friendlier to native aot without much effort from us.

@baynezy
Copy link

baynezy commented Jan 26, 2024

let me also take this opportunity to guage the interest in a premium native aot version of fastendpoints before we actually spend any time on it...

do you actually have a cold start problem? would your company be willing to support the effort by subscribing to a monthly premium of $100?

if so, go ahead and react to this message with a ❤️ and if enough people are interested, i'm pretty sure we can achieve it within a 3 to 4 months timeframe.

From my end. I am using FE in my start-up project. I am bootstrapping it from my bank account so cost is a major consideration. Hence, why I am using FE inside AWS Lambda. Should we be as successful as I hope then I will be glad to sponsor this project for two reasons.

  1. It is excellent and makes writing APIs a joy.
  2. Your support via issues is very responsive.

Keep up the good work.

@dj-nitehawk
Copy link
Member

@baynezy
thanks for the feedback 🙏
wish you the best of luck for your startup.

@wj8400684
Copy link

I will buy one if it is released

@dj-nitehawk dj-nitehawk added the up for grabs community contribution is needed for this issue label Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request up for grabs community contribution is needed for this issue
Development

No branches or pull requests

5 participants