{"id":16419809,"url":"https://github.com/delneg/fullstackwasmfsharpapp","last_synced_at":"2025-03-23T07:31:46.784Z","repository":{"id":122526610,"uuid":"495337896","full_name":"delneg/FullstackWasmFSharpApp","owner":"delneg","description":"Fullstack WASM Application written in F#, using WASI to compile backend to be run using wasmer / wastime","archived":false,"fork":false,"pushed_at":"2022-05-24T21:08:32.000Z","size":111,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T18:44:48.988Z","etag":null,"topics":["blazor","dotnet","fsharp","wasi","wasi-sdk","wasm","wasmer","wasmtime"],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/delneg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-23T09:17:08.000Z","updated_at":"2025-02-12T15:40:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a70f16a-3c00-4e61-bd49-cebdf13209ca","html_url":"https://github.com/delneg/FullstackWasmFSharpApp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delneg%2FFullstackWasmFSharpApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delneg%2FFullstackWasmFSharpApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delneg%2FFullstackWasmFSharpApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/delneg%2FFullstackWasmFSharpApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/delneg","download_url":"https://codeload.github.com/delneg/FullstackWasmFSharpApp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245071813,"owners_count":20556352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazor","dotnet","fsharp","wasi","wasi-sdk","wasm","wasmer","wasmtime"],"created_at":"2024-10-11T07:26:04.217Z","updated_at":"2025-03-23T07:31:46.770Z","avatar_url":"https://github.com/delneg.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Example F# WASI App\n\n\nThis is an example app to demonstrate the use of F# in WASI using the new https://github.com/SteveSandersonMS/dotnet-wasi-sdk\n\nHere's the introductory video from CNCF Europe WASM Conference [Bringing WebAssembly to the .NET Mainstream - Steve Sanderson, Microsoft](https://www.youtube.com/watch?v=PIeYw7kJUIg)\n\nShoutout to https://www.strathweb.com/2022/03/running-net-7-apps-on-wasi-on-arm64-mac/\nwritten by http://twitter.com/filip_woj for tips on running it on macOS\n\nUpd: The issue is fixed in Wasi.Sdk \u003e 0.1.1, https://github.com/dotnet/aspnetcore/pull/41123#issuecomment-1135884829\n\n## Preview\n\n![png](https://github.com/delneg/FullstackWasmFSharpApp/blob/master/assets/screenshot.png?raw=true)\n\n\n## Running Backend\n\nEnsure you have at least .NET 7.0 preview 3 - you can download it here https://dotnet.microsoft.com/en-us/download/dotnet/7.0\n\nAlso, please install `wasmtime` - https://wasmtime.dev/\n\nCommand to install it from their website is `curl https://wasmtime.dev/install.sh -sSf | bash` - be sure to check the script first (always check what you `sh` from the internet)\n\n\nThen:\n\n```bash\ncd TodoBackend\ndotnet build \nwasmtime bin/Debug/net7.0/FullstackWasmFSharpAppBackend.wasm --tcplisten localhost:8080 --env ASPNETCORE_URLS=http://localhost:8080\n\u003e info: Microsoft.Hosting.Lifetime\n\u003e       Now listening on: http://localhost:8080\n```\n\n## Running frontend\n\nPlease note, that currently the backend has hard-coded address of \"localhost:5000\" for CORS to work.\n\nAlso, the frontend has hard-coded address of the backend to \"http://localhost:8080\" for simplicity.\n\nThat said, you should be able to run interactive (with .NET Interpreter in WASM) frontend using:\n\n```bash\ncd TodoFrontend\ndotnet run\n```\n\nYou can build the portable (i.e. AOT and optimized) version of the frontend which can be deployed as static website with:\n\n```bash\ncd TodoFrontend\ndotnet publish -o $(pwd)/publish/ -r Portable\n```\n\nAfter that, you can serve it like any other SPA - for example, locally using [Serve](https://github.com/vercel/serve)\n\n\n```bash\nserve publish/wwwroot/ -p 5000\n```\n\n\n#### License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelneg%2Ffullstackwasmfsharpapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelneg%2Ffullstackwasmfsharpapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelneg%2Ffullstackwasmfsharpapp/lists"}