Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
Charturbo는 GPU 가속 차트와 실시간 스트리밍, 인터랙티브 3D로 데이터를 생생히 보여줍니다
Charturbo brings your data to life with GPU-accelerated charts, real-time streaming and interactive 3D. Built with Rust, WebAssembly and TypeScript.
데이터TypeScript · RustGitHub @jparkk0517온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. 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)