GitXplorerGitXplorer
d

interactive

public
2954 stars
392 forks
550 issues

Commits

List of commits on branch main.
Verified
e2f2a48f93b828a07ac9883477565515fa1e47bf

[main] Update dependencies from dotnet/arcade (#3798)

ddotnet-maestro[bot] committed 4 days ago
Verified
7f45ebebffcddbe824fc9cfeb09cceb3b40f442e

clean up Jupyter code and disable some flaky tests to unblock builds (#3803)

jjonsequitur committed 9 days ago
Verified
744e0ebdb8387492f7fac3a70d20508de1db07c4

remove step to delete dump files (#3804)

jjonsequitur committed 9 days ago
Verified
fce548ca811846658f96b7937a0b2888fd19b27f

update test result publishing conditions (#3802)

jjonsequitur committed 12 days ago
Verified
1734f33903b0ed1a0bb62f26c808e6252d385915

update build timeouts (#3801)

jjonsequitur committed 12 days ago
Verified
cf4dfbffbcc97a291d59bc444b176b6436e5af09

more attempts to address build timeouts under .NET 9 (#3800)

jjonsequitur committed 12 days ago

README

The README file for this repository.

.NET Interactive

What is .NET Interactive?

.NET Interactive is an engine and API for running and editing code interactively, including:

  • Running code and getting its results.
  • Evaluating code to provide language services such as completions and diagnostics.
  • Sharing data and variables between multiple languages and across remote machines.

While typically associated with notebook technologies such as Jupyter and the Polyglot Notebooks extension for Visual Studio Code, .NET Interactive has other uses as well, such as building REPLs and embedded script engines.

The following languages are supported by Polyglot Notebooks and .NET Interactive:

Language Variable sharing
C#
F#
PowerShell
JavaScript
SQL
KQL (Kusto Query Language)
Python
R
HTML
HTTP
Mermaid

Polyglot Notebooks

Since .NET Interactive is capable of running as a kernel for notebooks, it enables a polyglot (multi-language) notebook experience. When using the .NET Interactive kernel, you can use different languages from one cell to the next, share variables between languages, and dynamically connect new languages and remote kernels within a notebook. There's no need to install different Jupyter kernels, use wrapper libraries, or install different tools to get the best experience for the language of your choice. You can always use the best language for the job and seamlessly transition between different stages of your workflow, all within one notebook.

For the best experience when working with multi-language notebooks, we recommend installing the Polyglot Notebooks extension for Visual Studio Code. While the full .NET Interactive feature set is available in Jupyter, many features are only usable via code, whereas the Polyglot Notebooks extension provides additional features including a language/kernel picker for each cell, enhanced language services, a multi-kernel variable viewer, and more.

Jupyter

The most popular notebook platform is Jupyter, and .NET Interactive is a fully supported Jupyter kernel that you can use with Jupyter Notebook, JupyterLab, nteract, and other Jupyter frontends. You can read more about using .NET Interactive as a Jupyter kernel here.

REPLs

.NET Interactive can be used as the execution engine for REPLs as well. The experimental .NET REPL is one example of a command line REPL built on .NET Interactive. In addition, .NET REPL can be used for automated command line execution of notebooks.

Small factor devices

.NET Interactive supports running on devices like Raspberry Pi and pi-top [4]. You can find instructions here.

FAQ

For more information, please refer to our FAQ.

Acknowledgements

The multi-language experience of .NET Interactive is truly a collaborative effort among different teams at Microsoft and in the community. We'd like to thank the following teams for contributing their time and expertise to helping bring support for other languages:

  • PowerShell Team: PowerShell support
  • Azure Data Team: SQL and KQL support
  • Azure Notebooks Team: Python, R, and Jupyter subkernel support

Telemetry

Telemetry is collected when the dotnet-interactive tool is started. (If you are using the .NET Interactive libraries directly, they do not emit telemetry.) Once dotnet-interactive is running, it emits the names of packages imported into the notebook and the languages used to run individual cells. This data is hashed, allowing us to count unique values, but the pre-hashed values cannot be obtained from the telemetry. We do not collect any additional code or clear text from cells. All telemetry is anonymous. In addition, dotnet-interactive reports the usage for a specific subset of the verbs in the .NET Interactive CLI. Those verbs are:

  • dotnet interactive jupyter
  • dotnet interactive jupyter install
  • dotnet interactive stdio

How to opt out

The .NET Interactive telemetry feature is enabled by default. To opt out of the telemetry feature, set the DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT environment variable to 1 or true.

Disclosure

The .NET Interactive tool displays text similar to the following when you first run one of the .NET Interactive CLI commands (for example, dotnet interactive jupyter install). Text may vary slightly depending on the version of the tool you're running. This "first run" experience is how Microsoft notifies you about data collection.

Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience.The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_INTERACTIVE_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

To disable this message and the .NET Core welcome message, set the DOTNET_INTERACTIVE_SKIP_FIRST_TIME_EXPERIENCE environment variable to true. Note that this variable has no effect on telemetry opt out.

Contribution Guidelines

You can contribute to .NET Interactive with issues and pull requests. Simply filing issues for problems you encounter is a great way to contribute. Contributing code improvements is greatly appreciated. You can read more about our contribution guidelines here.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.