Git Product home page Git Product logo

simonhyll / dotnet-interactive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dotnet/interactive

0.0 1.0 0.0 101.3 MB

.NET Interactive combines the power of .NET with many other languages to create notebooks, REPLs, and embedded coding experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.

License: MIT License

Shell 2.31% JavaScript 0.31% Smalltalk 1.29% C# 71.10% F# 5.31% PowerShell 4.22% TypeScript 15.05% CMake 0.28% Batchfile 0.05% Dockerfile 0.09%

dotnet-interactive's Introduction

.NET Interactive

What is .NET Interactive?

.NET Interactive is an engine that can run multiple languages and share variables between them. Languages currently supported include:

  • C#
  • F#
  • PowerShell
  • JavaScript
  • SQL
  • KQL (Kusto Query Language)
  • HTML*
  • Mermaid*

*Variable sharing not available

What can .NET Interactive be used for?

As a powerful and versatile engine, .NET Interactive can be used to create and power a number of tools and experiences such as:

  • Polyglot Notebooks
  • REPLs
  • Embeddable script engines

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 and nteract

There are several ways to get started using .NET Interactive with Jupyter, including Jupyter Notebook, JupyterLab, and nteract.

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 actually be used to set up automation for your Polyglot Notebooks.

Small factor devices

We support 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 amongst other groups at Microsoft. We'd like to thank the following teams for contributing their time and expertise to helping light up functionality for other languages.

  • PowerShell Team: PowerShell support
  • Azure Data Team: SQL and KQL support

Telemetry

Telemetry is collected when .NET Interactive is started. Once .NET Interactive is running, we collect hashed versions of packages imported into the notebook and the languages used to run individual cells. We do not collect any additional code or clear text from cells. The telemetry is anonymous and reports only the values for a specific subset of the verbs in the .NET Interactive CLI. Those verbs are:

  • dotnet interactive jupyter
  • dotnet interactive jupyter install
  • dotnet interactive http
  • 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_CLI_TELEMETRY_OPTOUT 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.

dotnet-interactive's People

Contributors

colombod avatar jonsequitur avatar brettfo avatar dotnet-maestro[bot] avatar kevinransom avatar akshita31 avatar ladynaggaga avatar tihan avatar tylerleonhardt avatar daxian-dbw avatar charles-gagnon avatar dsyme avatar whiteblackgoose avatar corivera avatar cartermp avatar dependabot[bot] avatar idg10 avatar justinmdotnet avatar eerhardt avatar shibbas avatar donjayamanne avatar justinytchen avatar msynk avatar claudiaregio avatar zbrkic avatar loic-sharma avatar dharmatech avatar dotnet-bot avatar mmitche avatar maddydev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.