{"id":22546574,"url":"https://github.com/deephaven/deephaven-core","last_synced_at":"2026-01-29T00:19:03.321Z","repository":{"id":37051471,"uuid":"331057892","full_name":"deephaven/deephaven-core","owner":"deephaven","description":"Deephaven Community Core","archived":false,"fork":false,"pushed_at":"2025-05-12T20:08:59.000Z","size":103306,"stargazers_count":286,"open_issues_count":1181,"forks_count":85,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-05-12T20:35:55.951Z","etag":null,"topics":["deephaven"],"latest_commit_sha":null,"homepage":"","language":"Java","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/deephaven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-19T17:30:43.000Z","updated_at":"2025-05-12T19:38:18.000Z","dependencies_parsed_at":"2024-01-03T00:46:26.655Z","dependency_job_id":"3d09a2a6-7ef4-468b-a246-0350971086b6","html_url":"https://github.com/deephaven/deephaven-core","commit_stats":{"total_commits":2449,"total_committers":51,"mean_commits":48.01960784313726,"dds":0.7558187015108208,"last_synced_commit":"3209be34fe8e1dfb2d0a88a5fcdb951ae40a9a23"},"previous_names":[],"tags_count":185,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deephaven%2Fdeephaven-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deephaven%2Fdeephaven-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deephaven%2Fdeephaven-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deephaven%2Fdeephaven-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deephaven","download_url":"https://codeload.github.com/deephaven/deephaven-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253821409,"owners_count":21969699,"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":["deephaven"],"created_at":"2024-12-07T15:08:15.335Z","updated_at":"2026-01-29T00:19:03.291Z","avatar_url":"https://github.com/deephaven.png","language":"Java","funding_links":[],"categories":["数据库"],"sub_categories":[],"readme":"# Deephaven Community Core\n\n![Deephaven Data Labs Logo](docs/images/Deephaven_GH_Logo.svg)\n\nDeephaven Community Core is a real-time, time-series, column-oriented analytics engine\nwith relational database features.\nQueries can seamlessly operate upon both historical and real-time data.\nDeephaven includes an intuitive user experience and visualization tools.\nIt can ingest data from a variety of sources, apply computation and analysis algorithms\nto that data, and build rich queries, dashboards, and representations with the results.\n\nDeephaven Community Core is the open version of [Deephaven Enterprise](https://deephaven.io),\nwhich functions as the data backbone for prominent hedge funds, banks, and financial exchanges.\n\n- ![Build CI](https://github.com/deephaven/deephaven-core/actions/workflows/build-ci.yml/badge.svg?branch=main)\n- ![Quick CI](https://github.com/deephaven/deephaven-core/actions/workflows/quick-ci.yml/badge.svg?branch=main)\n- ![Docs CI](https://github.com/deephaven/deephaven-core/actions/workflows/docs-ci.yml/badge.svg?branch=main)\n- ![Check CI](https://github.com/deephaven/deephaven-core/actions/workflows/check-ci.yml/badge.svg?branch=main)\n- ![Nightly Check CI](https://github.com/deephaven/deephaven-core/actions/workflows/nightly-check-ci.yml/badge.svg?branch=main)\n\nThis README is intended to provide a high-level overview of the installation and use of Deephaven Community Core. For more detailed guides on the topics presented below, see our [Community documentation](https://deephaven.io/core/docs).\n\n## Supported Languages\n\n| Language      | Server Application | Client Application |\n| ------------- | ------------------ | ------------------ |\n| Python        | Yes                | Yes                |\n| Java / Groovy | Yes                | Yes                |\n| C++           | No                 | Yes                |\n| JavaScript    | No                 | Yes                |\n| Go            | No                 | Yes                |\n| R             | No                 | Yes                |\n\nDeephaven's client APIs use [gRPC](https://grpc.io/), [protobuf](https://github.com/deephaven/deephaven-core/tree/main/proto/proto-backplane-grpc/src/main/proto/deephaven_core/proto), [Apache Arrow Flight](https://arrow.apache.org/docs/format/Flight.html), and [Barrage](https://github.com/deephaven/barrage) to handle ticking data. Users who wish to build their own client APIs can use these tools to do so.\n\nThe following list contains documentation links for installation instructions and more:\n\n- Python\n  - [Run from Docker](https://deephaven.io/core/docs/getting-started/quickstart/)\n  - [pip-installed](https://deephaven.io/core/docs/getting-started/pip-install/)\n- Groovy\n  - [Run from Docker](https://deephaven.io/core/docs/getting-started/quickstart/)\n- [Python client](https://pypi.org/project/pydeephaven/)\n- [Java client](https://deephaven.io/core/docs/how-to-guides/java-client/)\n- [JS client](https://deephaven.io/core/client-api/javascript/modules/dh.html)\n- [Go client](https://pkg.go.dev/github.com/deephaven/deephaven-core/go)\n- [R client](https://github.com/deephaven/deephaven-core/blob/main/R/rdeephaven/README.md)\n\n## Install and run Deephaven\n\nThe Deephaven server can be installed and instantiated [from Docker](#from-docker), [from Python](#from-python), or [from source code](#built-from-source).\n\n### From Docker\n\nThis is the easiest way to get started with Deephaven. For complete instructions, see our [quickstart for Docker](https://deephaven.io/core/docs/getting-started/quickstart/). The table below shows installation dependencies.\n\n| Dependency     | Version  | OS      | Required/Recommended |\n| -------------- | -------- | ------- | -------------------- |\n| Docker         | ^20.10.8 | All     | Required             |\n| Docker compose | ^2       | All     | Recommended          |\n| Windows        | 10+      | Windows | Required             |\n| WSL            | ^2       | Windows | Required             |\n\nThe quickest way to install and run Deephaven from Docker is with a single Docker command:\n\n**Python without Docker Compose**\n\n```sh\n# Python\ndocker run --rm --name deephaven -p 10000:10000 ghcr.io/deephaven/server:latest\n```\n\n**Groovy without Docker Compose**\n\n```sh\n# Groovy\ndocker run --rm name deephaven -p 10000:10000 ghcr.io/deephaven/server-slim:latest\n```\n\nUsers who wish to customize their deployment should use Docker Compose. Deephaven offers a multitude of pre-made [docker-compose.yml files](https://deephaven.io/core/docs/getting-started/docker-install/#choose-a-deployment) to choose from. To get started, all that's required is to download a file, pull the images, and start the server.\n\n**Python with Docker Compose**\n\nThe base Python `docker-compose.yml` file can be found [here](https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/python-examples/base/docker-compose.yml).\n\n```sh\nmkdir deephaven-deployment\ncd deephaven-deployment\n\ncurl -O https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/python-examples/base/docker-compose.yml\n\ndocker compose pull\ndocker compose up\n```\n\n**Groovy with Docker Compose**\n\nThe base Groovy `docker-compose.yml` file can be found [here](https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/groovy/docker-compose.yml).\n\n```sh\nmkdir deephaven-deployment\ncd deephaven-deployment\n\ncurl -O https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/groovy/docker-compose.yml\n\ndocker compose pull\ndocker compose up\n```\n\n### pip-installed Deephaven\n\nUsers who wish to use Python but not Docker should use [pip-installed Deephaven](https://deephaven.io/core/docs/getting-started/pip-install/). For users with Windows operating systems, WSL is **not** required to use Deephaven this way.\n\n```sh\npip install --upgrade pip setuptools wheel\npip install deephaven-server deephaven-ipywidgets\n```\n\nThen, from Python:\n\n```python\nfrom deephaven_server import Server\ns = Server(port=10000, jvm_args=[\"-Xmx4g\"]).start()\n```\n\nThe input arguments to `Server` specify to bind to the Deephaven server on port `10000` and to allocate 4GB of memory to the server JVM.\n\n### Built from source\n\nUsers who wish to modify source code and contribute to the project should build Deephaven from source. For complete instructions, see [How to build Deephaven from source](https://deephaven.io/core/docs/getting-started/launch-build/).\n\nBuilding and running Deephaven requires a few software packages.\n\n| Package        | Version                       | OS           | Required/Recommended |\n| -------------- | ----------------------------- | ------------ | -------------------- |\n| git            | ^2.25.0                       | All          | Required             |\n| java           | \u003e=11, \u003c=22                    | All          | Required             |\n| docker         | ^20.10.8                      | All          | Required             |\n| docker compose | ^2                            | All          | Recommended          |\n| Windows        | 10 (OS build 20262 or higher) | Only Windows | Required             |\n| WSL            | 2                             | Only Windows | Required             |\n\nYou can check if these packages are installed and functioning by running:\n\n```bash\ngit version\njava -version\ndocker version\ndocker compose version\ndocker run hello-world\n```\n\n\u003e **_NOTE:_** Internally, the Java build process will use [Gradle Auto Provisioning](https://docs.gradle.org/current/userguide/toolchains.html#sec:provisioning)\n\u003e to download and use the appropriate Java version for building and testing.\n\n\u003e **_NOTE:_** On Windows, all commands must be run inside a WSL 2 terminal.\n\n#### Python\n\nA Python virtual environment is highly recommended for building Deephaven from source. Additionally, the wheel is installed with [pip](https://pypi.org/project/pip/) and built with [Gradle](https://gradle.org/).\n\n```sh\ngit clone https://github.com/deephaven/deephaven-core.git\ncd deephaven-core\npython3 -m venv ~/my-dh-venv\nsource ~/my-dh-venv/bin/activate\n./gradlew py-server:assemble\npip install \"py/server/build/wheel/deephaven_core-\u003cversion\u003e-py3-non-any.whl[autocomplete]\n./gradlew server-jetty-app:run\n```\n\n#### Groovy\n\nThe Groovy server is built with [Gradle](https://gradle.org/). `-Pgroovy` builds the Groovy server instead of Python.\n\n```sh\ngit clone https://github.com/deephaven/deephaven-core.git\ncd deephaven-core\n./gradlew server-jetty-app:run -Pgroovy\n```\n\n#### Debugging\n\nYou can debug the server by adding the `-Pdebug` flag, and then attaching a debugger to port 5005. This can be used in conjunction with other flags. For example, if you wanted to debug a server and startup with Groovy:\n\n```sh\n./gradlew server-jetty-app:run -Pgroovy -Pdebug\n```\n\n## Get the authentication key\n\nDeephaven, by default, uses [pre-shared key authentication](https://deephaven.io/core/docs/how-to-guides/authentication/auth-psk/) to authenticate against unauthorized access.\n\n### Deephaven run from Docker\n\nThe pre-shared key is printed to the Docker logs when the server is started. Set your own key with the configuration parameter `-Dauthentication.psk=\u003cYourKey\u003e`. For users running Deephaven via Docker, this is set in the `environment` section of a `docker-compose.yml` file, or as a space-separated configuration parameter at the end of the [`docker run` command](#from-docker).\n\nTo find the pre-shared key in the Docker logs:\n\n```sh\ndocker compose logs -f | grep \"access through pre-shared key\"\n```\n\n### Deephaven run from Python\n\nWhen a Deephaven server is started from Python, executing Deephaven queries from Python does _not_ require the key. However, if you wish to connect to the IDE via your web browser, you will need the pre-shared key. You will not be able to get the pre-shared key unless you set it yourself. To set the pre-shared key, add `\"-Dauthentication.psk=\u003cYourKey\u003e\"` as an additional JVM parameter to the server. The following example sets the key to `MyPreSharedKey`:\n\n```python\nfrom deephaven_server import Server\ns = Server(port=10000, jvm_args=[\"-Xmx4g\", \"-Dauthentication.psk=MyPreSharedKey\"]).start()\n```\n\n### Client APIs\n\nClients that attempt to connect to a server using pre-shared key authentication will need to supply the key to complete the connection. The key is the same for a client connection as it is for connecting directly to the server. For instance, in the [above example](#deephaven-run-from-python), the key for a client connection would also be `MyPreSharedKey`.\n\n## Connect to the server\n\nThe Deephaven UI is accessible from a web browser. For a server running locally on port 10000, it can be connected to via `https://localhost:10000/ide`. For a server running remotely on port 10000, it can be connected to via `https://\u003chostname\u003e:10000/ide`. If using authentication, enter credentials to gain access to the IDE. For information on supported browsers, see [here](https://github.com/deephaven/web-client-ui#browser-support).\n\n## First query\n\nFrom the Deephaven IDE, you can perform your first query.\n\nThe scripts below create two small tables: one for employees and one for departments. They are joined on the `DeptID` column to show the name of the department where each employee works.\n\n### Python\n\n```python\nfrom deephaven import new_table\nfrom deephaven.column import string_col, int_col\nfrom deephaven.constants import NULL_INT\n\nleft = new_table([\n        string_col(\"LastName\", [\"Rafferty\", \"Jones\", \"Steiner\", \"Robins\", \"Smith\", \"Rogers\"]),\n        int_col(\"DeptID\", [31, 33, 33, 34, 34, NULL_INT]),\n        string_col(\"Telephone\", [\"(347) 555-0123\", \"(917) 555-0198\", \"(212) 555-0167\", \"(952) 555-0110\", None, None])\n    ])\n\nright = new_table([\n        int_col(\"DeptID\", [31, 33, 34, 35]),\n        string_col(\"DeptName\", [\"Sales\", \"Engineering\", \"Clerical\", \"Marketing\"]),\n        string_col(\"Telephone\", [\"(646) 555-0134\", \"(646) 555-0178\", \"(646) 555-0159\", \"(212) 555-0111\"])\n    ])\n\nt = left.join(right, \"DeptID\", \"DeptName, DeptTelephone=Telephone\")\n```\n\n![alt_text](docs/images/ide_first_query.png \"Deephaven IDE First Query\")\n\n### Groovy\n\n```groovy\nleft = newTable(\n        string_col(\"LastName\", \"Rafferty\", \"Jones\", \"Steiner\", \"Robins\", \"Smith\", \"Rogers\"),\n        int_col(\"DeptID\", 31, 33, 33, 34, 34, NULL_INT),\n        string_col(\"Telephone\", \"(347) 555-0123\", \"(917) 555-0198\", \"(212) 555-0167\", \"(952) 555-0110\", null, null)\n    )\n\nright = newTable(\n        intCol(\"DeptID\", 31, 33, 34, 35),\n        stringCol(\"DeptName\", \"Sales\", \"Engineering\", \"Clerical\", \"Marketing\"),\n        stringCol(\"Telephone\", \"(646) 555-0134\", \"(646) 555-0178\", \"(646) 555-0159\", \"(212) 555-0111\")\n    )\n\nt = left.join(right, \"DeptID\", \"DeptName, DeptTelephone=Telephone\")\n```\n\n![alt_text](docs/images/ide_first_query.png \"Deephaven IDE First Query\")\n\n## Resources\n\n- [Help!](https://github.com/deephaven/deephaven-core/discussions/969)\n- [Deephaven Community Slack](https://deephaven.io/slack)\n- [Discussions](https://github.com/deephaven/deephaven-core/discussions)\n- [Deephaven Community Core docs](https://deephaven.io/core/docs/)\n- [Java API docs](https://deephaven.io/core/javadoc/)\n- [Python API docs](https://deephaven.io/core/pydoc/)\n\n## Contributing\n\nSee [CONTRIBUTING](./CONTRIBUTING.md) for full instructions on how to contribute to this project.\n\n### Code Of Conduct\n\nThis project has adopted the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/).\nFor more information see the [Code of Conduct](CODE_OF_CONDUCT.md) or contact [opencode@deephaven.io](mailto:opencode@deephaven.io)\nwith any additional questions or comments.\n\n### License\n\nCopyright © 2016-2023 Deephaven Data Labs and Patent Pending. All rights reserved.\n\nProvided under the [Deephaven Community License](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeephaven%2Fdeephaven-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeephaven%2Fdeephaven-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeephaven%2Fdeephaven-core/lists"}