Rust na Azure Functions

Coati

Rust na Azure Functions
« kdy: 05. 11. 2021, 02:50:09 »
Jde nějak na Azure Functions použít Rust bez použití custom handlers (to je poněkud těžkopádné a v podstatě to není skutečně serverless)?


oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #1 kdy: 05. 11. 2021, 07:17:57 »
Cisty rust - pokial niekto nenapise bindingy na sluzby tak nie.

No v Rsute si mozes spravit DLL-ko/so kniznicu, nad ktorou si napisat C# Azure funkciu (len tenky wrapper) a prevolat Rustovsku kniznicu.

Re:Rust na Azure Functions
« Odpověď #2 kdy: 05. 11. 2021, 11:38:02 »
Cisty rust - pokial niekto nenapise bindingy na sluzby tak nie.

No v Rsute si mozes spravit DLL-ko/so kniznicu, nad ktorou si napisat C# Azure funkciu (len tenky wrapper) a prevolat Rustovsku kniznicu.
Není to P/Invoke?

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #3 kdy: 05. 11. 2021, 13:43:13 »
Ano je.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #4 kdy: 05. 11. 2021, 14:32:40 »
Ano je.
.NET Core umí přilinkovat statickou knihovnu k dotnetí binárce, tím se obejde P/Invoke (používá se transparentně IJW přes ijwhost.dll). V .NET Framework se to jmenuje C++ Interop a překladač přemosťující kód generuje automaticky. Pro Rust to funguje bez problémů včetně nasazení na Azure Functions.


oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #5 kdy: 06. 11. 2021, 12:44:53 »
Tu je priamo ako sa to robi na rozsiahlejsich projektoch - https://www.youtube.com/watch?v=0B1U3fVCIX0 kazdopadne pri povahe nanosluzieb, to az tak nebude treba, pravdepodobne sa da vystacit s par nativnymi importami.

Re:Rust na Azure Functions
« Odpověď #6 kdy: 06. 11. 2021, 16:24:43 »
Tu je priamo ako sa to robi na rozsiahlejsich projektoch - https://www.youtube.com/watch?v=0B1U3fVCIX0 kazdopadne pri povahe nanosluzieb, to az tak nebude treba, pravdepodobne sa da vystacit s par nativnymi importami.
Takto se to dělalo do .NET Core 3.0, od 3.1 se linkuje nativní statická knihovna přímo do dotnetího DLL.

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #7 kdy: 07. 11. 2021, 10:28:05 »
Tu je priamo ako sa to robi na rozsiahlejsich projektoch - https://www.youtube.com/watch?v=0B1U3fVCIX0 kazdopadne pri povahe nanosluzieb, to az tak nebude treba, pravdepodobne sa da vystacit s par nativnymi importami.
Takto se to dělalo do .NET Core 3.0, od 3.1 se linkuje nativní statická knihovna přímo do dotnetího DLL.

To je pre mna novinka. Mozes mi o tom poslat nejaky zdroj, alebo example?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #8 kdy: 09. 11. 2021, 00:02:54 »
To je pre mna novinka.
Je to z roku 2019. Release notes k .NET Core 3.1 je asi nejlepší zdroj informací k této tehdy nové funkcionalitě. Něco je pak na MS blogu C++ týmu.

oss

  • ***
  • 229
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #9 kdy: 09. 11. 2021, 08:19:11 »
Pytam sa pre to, lebo DllImport tu bol v komentaroch oznaceny za "legacy" postup (z videa), tak sa pytam ako sa to ma robit teraz.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Rust na Azure Functions
« Odpověď #10 kdy: 09. 11. 2021, 09:53:06 »
Pytam sa pre to, lebo DllImport tu bol v komentaroch oznaceny za "legacy" postup (z videa), tak sa pytam ako sa to ma robit teraz.
To není úplně “legacy”, ale je to pro dynamické knihovny, ostatně někdy má člověk jen DLL. Ale přibyla nová možnost přilinkovat statickou knihovnu, takže pokud mám k té nativní části zdrojáky, dá se místo P/Invoke použít efektivnější interop. Někdy na tom rozdílu v efektivitě moc nezáleží, pokud třeba ten nativní kód něco počítá několik sekund, tak mě asi nějaká ta mikrosekunda v interopu netrápí.