{"id":28454898,"url":"https://github.com/fsprojects/ifsharp","last_synced_at":"2025-09-09T14:17:31.709Z","repository":{"id":12281751,"uuid":"14906267","full_name":"fsprojects/IfSharp","owner":"fsprojects","description":"F# for Jupyter Notebooks","archived":false,"fork":false,"pushed_at":"2022-03-17T09:11:27.000Z","size":17648,"stargazers_count":443,"open_issues_count":12,"forks_count":70,"subscribers_count":34,"default_branch":"main","last_synced_at":"2025-06-28T07:38:30.121Z","etag":null,"topics":["f-sharp","jupyter","jupyter-notebook"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fsprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-03T21:25:01.000Z","updated_at":"2025-05-13T10:36:31.000Z","dependencies_parsed_at":"2022-08-20T19:20:24.285Z","dependency_job_id":null,"html_url":"https://github.com/fsprojects/IfSharp","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/fsprojects/IfSharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FIfSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FIfSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FIfSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FIfSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fsprojects","download_url":"https://codeload.github.com/fsprojects/IfSharp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsprojects%2FIfSharp/sbom","scorecard":{"id":412822,"data":{"date":"2025-08-11","repo":{"name":"github.com/fsprojects/IfSharp","commit":"6bca367feb90d98fc83350764f56f965d2afcd91"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 4/30 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.0.4 not signed: https://api.github.com/repos/fsprojects/IfSharp/releases/24329063","Warn: release artifact v3.0.3 not signed: https://api.github.com/repos/fsprojects/IfSharp/releases/20108332","Warn: release artifact v3.0.1 not signed: https://api.github.com/repos/fsprojects/IfSharp/releases/13116429","Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/fsprojects/IfSharp/releases/12160725","Warn: release artifact v3.0.0-beta3 not signed: https://api.github.com/repos/fsprojects/IfSharp/releases/9976923","Warn: release artifact v3.0.4 does not have provenance: https://api.github.com/repos/fsprojects/IfSharp/releases/24329063","Warn: release artifact v3.0.3 does not have provenance: https://api.github.com/repos/fsprojects/IfSharp/releases/20108332","Warn: release artifact v3.0.1 does not have provenance: https://api.github.com/repos/fsprojects/IfSharp/releases/13116429","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/fsprojects/IfSharp/releases/12160725","Warn: release artifact v3.0.0-beta3 does not have provenance: https://api.github.com/repos/fsprojects/IfSharp/releases/9976923"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:4: pin your Docker image by updating mono:5.20.1.19 to mono:5.20.1.19@sha256:6b80f3bef036f71e23f1be1cd117ac178e442915d64d0930cce350fcb07f8426","Warn: downloadThenRun not pinned by hash: Dockerfile:14","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T23:08:38.613Z","repository_id":12281751,"created_at":"2025-08-18T23:08:38.613Z","updated_at":"2025-08-18T23:08:38.613Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274309262,"owners_count":25261440,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["f-sharp","jupyter","jupyter-notebook"],"created_at":"2025-06-06T21:14:13.873Z","updated_at":"2025-09-09T14:17:31.701Z","avatar_url":"https://github.com/fsprojects.png","language":"Jupyter Notebook","readme":"| Build status  | Linux | macOS | Windows |\n| --- | --- | ----------- | --- |\n| .NET Framework / Mono | [![Build Status](https://travis-ci.org/fsprojects/IfSharp.svg?branch=master)](https://travis-ci.org/fsprojects/IfSharp) |     | [![Build Status](https://dev.azure.com/IFSharp/IFSharp/_apis/build/status/fsprojects.IfSharp?branchName=master\u0026jobName=Windows)](https://dev.azure.com/IFSharp/IFSharp/_build/latest?definitionId=1\u0026branchName=master) |\n| .NET Core (experimental) | [![Build Status](https://dev.azure.com/IFSharp/IFSharp/_apis/build/status/fsprojects.IfSharp?branchName=master\u0026jobName=Linux)](https://dev.azure.com/IFSharp/IFSharp/_build/latest?definitionId=1\u0026branchName=master) | [![Build Status](https://dev.azure.com/IFSharp/IFSharp/_apis/build/status/fsprojects.IfSharp?branchName=master\u0026jobName=macOS)](https://dev.azure.com/IFSharp/IFSharp/_build/latest?definitionId=1\u0026branchName=master) | [![Build Status](https://dev.azure.com/IFSharp/IFSharp/_apis/build/status/fsprojects.IfSharp?branchName=master\u0026jobName=Windows)](https://dev.azure.com/IFSharp/IFSharp/_build/latest?definitionId=1\u0026branchName=master) |\n\n# F# and Jupyter\n\nThis implements F# for [Jupyter](http://jupyter.org/) notebooks. View the [Feature Notebook](FSharp_Jupyter_Notebooks.ipynb) for some of the features that are included.\n\n# .NET Interactive (alternative)\n\nThere's related project of [.NET Interactive](https://github.com/dotnet/interactive) which was inspired by this one but a completly rethought approach with integrated package management, VS Code support, and variable sharing between languages. If you're moving to .NET Core support it's definitely worth checking out. There's a great video from [cartermp](https://github.com/cartermp) demoing some of the features: https://youtu.be/_QnbV6CAWXc?t=1298\n\n# Getting Started\n\n## Docker\n\nTo run using a Docker container on Linux/macOS:\n\n    docker run -v $PWD:/notebooks -p 8888:8888 fsprojects/ifsharp\n    \nor with PowerShell on Windows:\n\n    docker run -v ${PWD}:/notebooks -p 8888:8888 fsprojects/ifsharp\n\nThe container exposes your current directory as a volume called `notebooks` where the files get saved.\nOpen with \n\n    http://localhost:8888\n\nand enter the token printed by the docker container startup, or set up a password.\n\nNotes:\n\n* Add `-p \u003cyour_port\u003e:8888` if a different port mapping is required.\n\n* If using Windows you must enable file sharing for docker on that drive.\n\n## Azure Notebooks\n\nYou can use Jupyter F# Notebooks with free server-side execution at [Azure Notebooks](https://notebooks.azure.com/).\nIf you select \"Show me some samples\", then there is an \"Introduction to F#\" which guides you through the language\nand its use in Jupyter.\n\n## Windows Local Installation and Use\n\n1. Download [Anaconda](https://www.anaconda.com/download/) for Python 3.6\n\n2. Launch Anaconda3-4.4.0-Windows-x86_64.exe (or later exe should work, file an issue if you have issues)\n   Click through the installation wizard, choosing the given install location. At the 'advanced installation options' screen shown below, select \"Add Anaconda to my PATH environment variable\". The installer warns against this step, as it can clash with previously installed software, however it's currently essential for running IfSharp. Now install.\n\n   This should also install Jupyter: you may check this by entering 'jupyter notebook' into the Anaconda console window. If Jupyter does not launch (it should launch in the browser), install using 'pip install jupyter', or by following [Jupyter](http://jupyter.readthedocs.io/en/latest/install.html) instructions.\n\n   ![Installation screenshot](/docs/files/img/anaconda-installation.png)\n\n3. Download [the latest IfSharp zip release](https://github.com/fsprojects/IfSharp/releases/)\n\n4. Run IfSharp.exe (IfSharp application icon).\n\nJupyter will start and a notebook with F# can be selected. This can be run via \"jupyter notebook\" in future\n\n#### Troubleshooting\n\nIf the launch fails in the console window, check that the Anaconda version used is currently added to the path. If not, uninstalling Anaconda and reinstalling using instructions 1-\n\n## macOS Local Installation and Use\n\n1. Install [Jupyter](http://jupyter.readthedocs.org/en/latest/install.html) via pip or Anaconda etc.\n\n2. Install [Mono](http://www.mono-project.com/download/) (tested Mono 6.6.0)\n\n3. Download [the latest IfSharp zip release](https://github.com/fsprojects/IfSharp/releases/)\n\n4. Unzip the release then run `mono ifsharp.exe`\n\nJupyter will start and a notebook with F# can be selected. This can be run via \"jupyter notebook\" in future\n\n## Linux Local Installation and Use\n\n1. Install [Jupyter](http://jupyter.readthedocs.org/en/latest/install.html) via pip or Anaconda etc.\n\n2. Install [Mono](http://www.mono-project.com/docs/getting-started/install/linux/) (tested Mono 5.18, \"mono-complete\" recommended).\n\n3. Download [the latest IfSharp zip release](https://github.com/fsprojects/IfSharp/releases/)\n\n4. Unzip the release then run `mono ifsharp.exe` (this sets up the Jupyter kernel files in `~/.local/share/jupyter/kernels/ifsharp/`) \n\nJupyter will start and a notebook with F# can be selected. This can be run via \"jupyter notebook\" in future\n\n## Linux Local Installation (HDInsights)\n\n1. Follow instructions to [install or update Mono](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-install-mono) on HDInsights.\n\n2. [SSH into the HDInsights cluster](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-linux-use-ssh-unix).\n\n3. Download [the latest IfSharp zip release](https://github.com/fsprojects/IfSharp/releases/)\n\n```\n# create ifsharp folder under /tmp\nmkdir ifsharp\ncd ifsharp\nwget https://github.com/fsprojects/IfSharp/releases/download/v3.0.4/IfSharp.v3.0.4.zip\nunzip IfSharp.v3.0.4.zip\nchmod +x ifsharp.exe\n```\n4. From the [Azure portal](https://portal.azure.com/), open your cluster.  See [List and show clusters](../hdinsight-administer-use-portal-linux.md#list-and-show-clusters) for the instructions. The cluster is opened in a new portal blade.\n5. From the **Quick links** section, click **Cluster dashboards** to open the **Cluster dashboards** blade.  If you don't see **Quick Links**, click **Overview** from the left menu on the blade.\n6. Click **Jupyter Notebook**. If prompted, enter the admin credentials for the cluster.\n\n   \u003e [!NOTE]\n   \u003e You may also reach the Jupyter notebook on Spark cluster by opening the following URL in your browser. Replace **CLUSTERNAME** with the name of your cluster:\n   \u003e\n   \u003e `https://CLUSTERNAME.azurehdinsight.net/jupyter`\n   \u003e\n7. Click **New**, and then click **Terminal**.\n8. In the terminal window `cd` into the `/tmp/ifsharp/` folder and using mono, run the installer:\n\n```\ncd /tmp/ifsharp\nmono ifsharp.exe\n```\n9. Back on the Jupyter homepage, click **New** and you will now see the F# kernel installed.\n\n# Screenshots\n\n## Intellisense\n![Intellisense Example #1](/docs/files/img/intellisense-1.png?raw=true \"Intellisense Example #1\")\n***\n\n![Intellisense Example #2](docs/files/img/intellisense-2.png?raw=true \"Intellisense Example #2\")\n\n## Integrated NuGet (via Paket)\n![NuGet Example](docs/files/img/integratedNuget.png?raw=true \"NuGet example\")\n\n## Inline Error Messages\n![Inline Error Message](docs/files/img/errors-1.png?raw=true \"Inline error message\")\n\n\n# Development Guide\n\n## Building Docker image locally\n\nBuild the container with: \n\n    docker build -t fsprojects/ifsharp:local .\n\n# Compatibility\n\nIfSharp supports Jupyter 5.7.7 and works with both Python 2.X and Python 3.X\n\nIf you need IPython 1.x or 2.x support please see the archived https://github.com/fsprojects/IfSharp/tree/ipython-archive\n\n# Automatic Installation\n\nPrevious releases for the IPython notebook are here: [release repository](https://github.com/fsprojects/IfSharp/releases).\nAutomatic installs for Jupyter may be provided in the future. Contributions are welcome!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fifsharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsprojects%2Fifsharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsprojects%2Fifsharp/lists"}