mrkeyoor.com_
Sat 12 Sept 06:30 UTC
Dataevaluationupdated 12 Sept 2026

bokeh review

Bokeh is a Python library for turning data into interactive charts, dashboards, and browser-based applications. It is meant for people who want web-ready visualization without building the entire presentation layer in JavaScript.

trackingstars / 7d
Verdict

Our install completed in 52 seconds, but both the 17-second build and 8-second test command exited 1. Bokeh remains a strong choice when a Python team needs genuinely interactive browser graphics and wants a mature, permissively licensed project behind them. Use the packaged installation path with confidence appropriate to your own testing, but budget time to understand the contributor toolchain before standardizing on a source build.

We ran it

Install✓ · 52s35 packages · 37 MB
Build✗ · 17s
Tests✗ · 8sran, no count parsed
Known vulns0(pip-audit)
Repo6393 files~335,832 lines of source · 68.2 MB · 10 CI workflows · tests dir

Answers from our run

Does bokeh build from source?

Dependencies installed in 52 seconds (35 packages), and the build failed. We cloned commit 9b1a14d into a clean Debian container with 3 CPUs and no project-specific setup.

Do bokeh's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does bokeh have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use bokeh?

Teams that need a source checkout to build and test cleanly with no investigation; our measured build and test commands both failed

What are the alternatives to bokeh?

Plotly.py, Altair, hvPlot. Our install completed in 52 seconds, but both the 17-second build and 8-second test command exited 1.

Setup3/5Install worked in 52s, but build and tests exited 1
Docs4/5First steps, user guide, tutorial, and contributor guide
Community4/520,447 stars and a push one day before review
Maturity4/5Created in 2012 with CI, tests, and BSD licensing

Who it’s for

Python teams building interactive analytical charts for the browser
Data scientists who need to move beyond static notebook figures
Developers creating dashboards or data applications around large or streaming datasets
Organizations that prefer a permissive BSD-3-Clause visualization stack

Who it’s NOT for

Teams that need a source checkout to build and test cleanly with no investigation; our measured build and test commands both failed
Developers seeking a tiny plotting dependency; the checkout and installed environment are substantial
Projects that only need static publication graphics and do not benefit from browser interactivity
Buyers who require a clearly identified latest release from this snapshot; none was listed

Setup reality

Our run installed successfully in 52 seconds, adding 35 packages and using 37 MB, but the build exited 1 after 17 seconds and the tests exited 1 after 8 seconds. That is noticeably rougher than the README's simple pip install bokeh path suggests for contributors: package installation was straightforward, while validating the source checkout was not. The pytest log reached initial configuration and reported that it failed to import the bokeh filter module while applying a warning filter; it does not establish a deeper cause, and no build-log excerpt was provided.

Bokeh brings Python data work into the browser

Bokeh is an interactive visualization library for modern web browsers, aimed at turning Python data work into plots, dashboards, and data applications. The project dates to 2012, uses the BSD-3-Clause license, and has 20,447 stars. Its appeal is direct: Python teams can create browser interaction without making a custom JavaScript application the starting point. BokehJS is also distributed through npm for developers who need access to the browser layer.

The README promises concise construction of versatile graphics, including interactivity for large or streaming datasets. It links a first-steps guide, a full User's Guide, and tutorial notebooks. Those are sensible entry points for a repository containing 6,393 files and roughly 335,832 lines of source. This is a sizable visualization system, not a small plotting wrapper, with Python packaging, JavaScript components, contributor material, and several support channels.

What happened when we ran it

We cloned commit 9b1a14d into a fresh Debian container with 3 CPUs and 8 GB of RAM. Installation succeeded in 52 seconds, added 35 packages, and occupied 37 MB. That supports the README's simple pip install bokeh route in our Python 3.12 environment. The checkout was 68.2 MB, and pip-audit found 0 known vulnerabilities in the installed set. That security result is a point-in-time check, not a promise about future dependencies.

Source validation was rougher. The build exited 1 after 17 seconds, and the tests exited 1 after 8 seconds. No build-log excerpt was supplied, so we cannot responsibly diagnose that failure. The test log shows pytest failing during initial configuration while importing the bokeh filter module for a deprecation warning concerning tile_providers. The excerpt does not establish why the import failed, and there is no test count from which to claim partial success.

We also measured 10 CI workflow files and found a dedicated tests directory, but no Dockerfile. The automation and tests show formal engineering structure, although their presence cannot tell us whether every branch is green. A Dockerfile is not required for a Python library, yet the repository provides no container recipe matching our box. Contributors should follow the development guide and expect more setup knowledge than the 2 one-line install commands provided to package users.

Its strongest case is interactive work owned by Python teams

Bokeh's main strength is its chosen boundary. It targets interactive browser graphics without requiring every Python user to become a front-end specialist, while acknowledging the JavaScript layer through @bokeh/bokehjs. The README explicitly covers plots, dashboards, data applications, and streaming data. Its 4-by-9 image gallery suggests visual breadth, although that gallery is an illustration, not evidence of rendering speed or capacity.

The support surface is another concrete advantage. The project links official installation instructions, first steps, a User's Guide, tutorial notebooks, a contributor guide, Discourse, Stack Overflow, and a developer Slack invitation. It is a NumFOCUS sponsored project and names several organizational supporters. Alongside more than 14 years of history, that offers greater institutional context than a single-maintainer repository. The BSD-3-Clause terms are also friendly to commercial adoption, subject to the license conditions.

Source contributors should expect friction

Our failed build and test runs block an unqualified recommendation for teams planning an internal fork. A successful package install and a reproducible source checkout are different standards: Bokeh met the first in 52 seconds on our box, but not the second. Because the logs are incomplete, blaming system packages, Python 3.12, or Bokeh itself would be guessing. Reproduce the documented contributor environment and require a clean internal CI run before maintaining changes downstream.

Scale adds another caution. About 335,832 source lines and 853 open issues mean more concepts, maintenance surface, and triage history than a lightweight wrapper. The issue total alone does not show neglect; it may include feature requests and active discussions. Still, adopters should search it for their exact chart types, browser constraints, and integrations. The README's performance language also remains a project claim because our run measured setup commands, not dataset limits, memory use, or interaction latency.

Recent activity looks healthy, release cadence is unknown

The strongest health signal is recency: the last push was 2026-09-11, one day before this review. Combined with 20,447 stars, 10 workflows, contribution guidance, and established support channels, that points to a living project. The 853 open issues represent a real workload, but they should be judged alongside current development rather than used as an abandonment score. We lack issue response and closure data, so maintainers' turnaround cannot be graded from this snapshot.

No latest release was listed in the 2026 snapshot. That makes release cadence unknown, not poor. Active projects may push frequently while releasing on another schedule, and the absent field could be a collection gap. Before production use, check the package index and release notes, then test the exact version being deployed. Our commit-level result should not be generalized to every published Bokeh package.

It fits between analysis code and a browser-facing product

Bokeh fits where Python owns data preparation and users need richer browser interaction than a static image provides. It can support notebook exploration, internal dashboards, or the visualization layer of a data application, while BokehJS offers a front-end integration point. Keep databases, access control, background jobs, and monitoring in separate layers. Start with the packaged install, prototype 1 representative workflow, and verify browser behavior plus source tests in your own CI before making it an architectural dependency.

Choose Bokeh when interactive output is central and its documented examples match the intended experience. Choose Plotly.py when its figure ecosystem is already standard, Altair for a declarative statistical grammar, or hvPlot for a high-level .plot() interface. With 3 credible alternatives, the decision should rest on a representative chart and deployment path, not star count alone. Bokeh earns a shortlist position, but our failed validation means contributors should plan an extra setup pass.

Alternatives

ProjectWhat it isPick it when
Plotly.pyA Python graphing library centered on interactive Plotly figures.Pick this instead when Plotly's figure ecosystem and chart conventions already match your application.
AltairA declarative Python visualization library built around Vega-Lite.Pick this instead when concise, declarative statistical charts matter more than a broader application toolkit.
hvPlotA high-level plotting API for pandas and other common data containers.Pick this instead when you want a familiar `.plot()`-style interface with minimal chart code.

What people are saying

  1. [velocity-scout] bokeh/bokeh

Sources

  1. Bokeh GitHub repository
  2. Bokeh homepage

More data reviews

Lean · orm · datahub · open-source-games · lx-music-source · postgrest · the whole board →