# DCF.js Overview

DCF.js is a fast and general-purpose cluster computing system. It provides high-level API for [Node.js](https://nodejs.org/), and an optimized engine that supports general executing graphs. It's a re-implementation of [Apache Spark](http://spark.apache.org/docs/latest/index.html).

## Installing and Running the Shell

To get a quick shot of DCF.js, you can install dcf with npm or yarn. You must install node.js 8.0+ first. If  you haven't, download from [Download | Node.js](https://nodejs.org/en/download/current/).

{% tabs %}
{% tab title="npm" %}

```bash
npm install -g dcf
```

{% endtab %}

{% tab title="yarn" %}

```bash
yarn global add dcf
```

{% endtab %}
{% endtabs %}

Then you can run interactive shell cli with

```
dcf-shell
```

## Running the Examples from Source

You can download source of DCF.js from [git repo](https://github.com/dcfjs/dcf), install dependencies:

{% tabs %}
{% tab title="npm" %}

```
git clone https://github.com/dcfjs/dcf.git
cd dcf
npm install
```

{% endtab %}

{% tab title="yarn" %}

```
git clone https://github.com/dcfjs/dcf.git
cd dcf
yarn
```

{% endtab %}
{% endtabs %}

Then you can run examples like following:

```bash
npm run ts-node src/samples/tutorial-0.ts
```

## Install as Dependency

If you decide to use DCF.js in product, you should install it as a dependency

{% tabs %}
{% tab title="npm" %}

```
npm install --save dcf
```

{% endtab %}

{% tab title="yarn" %}

```
yarn add dcf
```

{% endtab %}
{% endtabs %}

We suggest you to use [typescript](http://www.typescriptlang.org) as scripting language. Type declaration of DCF.js is included in npm package.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dcf.gitbook.io/dcf/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
