Busabase
Busabase 是一个开源(MIT)数据库与 AI 智能体工作空间——将数据、文档、技能和应用集成于一体。您可以本地运行、在网络内自托管或使用 Busabase Cloud,从而开启新时代。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A large-scale web charting library built with Rust + WebGPU. Zoom and pan 1–10 million points at 60 FPS. Browsers without WebGPU switch to WebGL2 automatically.
▶ Live demo · Documentation · Benchmarks · Changelog
▶ Interactive performance comparison · change theme/colors
The charts below are rendered with Charturbo and exported with exportChartSVG(). The comparison page lets you pick scenarios, inspect tooltips, switch between 4 themes, change the accent color, palette, font, corner radius and value labels, and download SVG.
Charturbo is compared with uPlot, ECharts, Chart.js, Plotly, ChartGPU, SciChart and Highcharts on the same seeded data. Measured on a single Apple M1 environment; initialization cost is excluded from TTFF. The ChartGPU scatter only moves along x, so its workload differs from the other libraries.
Read the charts per workload. For each scenario Charturbo shows the one mode (CPU or GPU) with the higher FPS, and every metric comes from that same selected run (on a tie, the mode with the shorter physics time). Charturbo and three.js use the same 3D Barnes-Hut force model. These graph numbers were measured with the earlier hybrid GPU mode (GPU repulsion, CPU integration and spatial index), whose physics time includes the GPU round trip. deck.gl renders without physics, cosmos.gl is a 2D GPU layout, and 3d-force-graph uses a different d3-force-3d force model. Do not read their FPS as an overall ranking of the same task. Timeouts are results of that adapter and setting.
On Apple M1, the hybrid GPU physics ran at 60 FPS with 10k nodes and 19.6 FPS with 100k nodes (CPU: 43.8 / 3.5 FPS). stepPhysicsAsync now keeps the whole layout resident on the GPU and has not been re-measured yet. Use it as await sdk.stepPhysicsAsync(0.016) followed by sdk.render(), and await sdk.syncPhysicsPositions() before picking or exporting; WebGL2 falls back to the CPU. The synchronous stepPhysics() is the CPU path.
Methodology, per-library settings, full tables and limitations are in the benchmark methodology. To run it yourself: cd web && npm run bench.
Regenerate the README images: cd web && npm run bench:charts (requires Chrome). Run the comparison page with npm run examples:dev and open /benchmarks.html.
Not yet published to npm. For now, build from source.
npm install charturbo
Bundlers such as Vite and webpack 5 handle the wasm file automatically. For a plain <script> tag or esbuild, see Installation & Bundlers.
import { Charturbo } from 'charturbo';
const canvas = document.querySelector('canvas')!;
const sdk = await Charturbo.create(canvas);
// A 1,000,000-point line chart
const values = Float32Array.from({ length: 1_000_000 }, (_, i) => Math.sin(i / 5000) * 40 + Math.random() * 4);
sdk.renderLineChart([{ name: 'Sensor A', values }], { title: 'Live telemetry' });
// Tooltip, wheel zoom, drag to pan
sdk.enableNodeInteractions(canvas, { autoRender: true });
sdk.render();
React:
import { CharturboChart } from 'charturbo/react';
<CharturboChart type="line" data={series} options={{ title: 'Utilization' }} style={{ height: 300 }} />;
Examples and source for every chart type are in the live demo.
| Renderer | Browsers |
|---|---|
| WebGPU | Chrome · Edge 113+, Safari 26+ |
| WebGL2 (automatic fallback) | Other modern browsers |
The documentation site is available in English, Korean and Simplified Chinese. To read it in the repository, see docs/.
cd web && npm run docs (TypeDoc → docs/public/api/, English)