uPlot
Our great sponsors
uPlot | standards-positions | |
---|---|---|
18 | 178 | |
8,436 | 595 | |
- | 1.7% | |
8.5 | 7.6 | |
16 days ago | about 2 months ago | |
JavaScript | Python | |
MIT License | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
uPlot
-
Rendering data that changes very frequently
Here is a very efficient 2D canvas lib that is extremely efficient https://github.com/leeoniya/uPlot i recommend looking through their readme and seeing if it solves your current problems.
- Graphing Libraries that are as good as Excel?
-
Show HN: Inflation-adjusted stock charts â Total Real Returns
BACKEND:
It's about 3000 lines of Crystal code https://crystal-lang.org/ -- it's been an absolute dream to program in. Ruby-like syntax, statically compiled performance. Nice standard library. Would recommend :)
Performance == caching
Local ephemeral filesystem for shortest-term caching.
Redis for shared medium-term caching and locking.
S3-compatible object storage for longest-term caching (for raw data feeds pulled every evening by a cronjob).
FRONTEND:
Bootstrap
uPlot https://github.com/leeoniya/uPlot
Just a sprinkle of inline JS+CSS on the page.
-
It's always been you, Canvas2D
you can use matchMedia to detect devicePixelRatio changes and re-sync:
https://github.com/leeoniya/uPlot/blob/190134aa844cfa2a0c052...
everything stays crisp even as you browser-zoom. e.g. https://leeoniya.github.io/uPlot/demos/area-fill.html
-
AMP Has Irreparably Damaged Publishersâ Trust in Google-Led Initiatives
Safari's slow release cadence (typically tied to OS version upgrades) does leave it more broken and for longer than Firefox, Chrome, Opera and other browsers that are updated more frequently and not tied to the OS.
just recently i ran into incompatibilities with Safari < 14 needing the old-spec matchmedia api:
https://github.com/leeoniya/uPlot/issues/538#issuecomment-87...
-
WebGL charting libraries
If you are showing 100s of thousands of points, I'd still go with canvas eg uPlot. It's a really, really excellent library.
-
[task] Program uplot support into node-red-dashboard (javascript)
The existing node red chart tools is not great. I'd like to be able to use uplot instead. The uplot-charts node should work very much like that charts node built into node-red-dashboard.
-
Optimizing at the CPU instruction level in the browser w. Rust and WebAssembly
super cool!
i've done my share of optimizations and benchmarking charting libs [1] but this goes deeper still.
SVG is not a good choice for large raw datasets when you need performance.
-
Grafana v8.0 Released
> Can you now maybe talk a little bit about the React integration?
do you have a specific question about it?
there are some third party integrations now:
https://github.com/leeoniya/uPlot#third-party-integrations
in general, my stance on the topic has not changed. wrapping a fast imperative lib in a declarative framework facade has significant performance drawbacks. the main CPU & RAM cost of rendering a Grafana dashboard full of uPlot graphs is almost always React (by far).
> Another question: are you considering making uPlot more accessible?
this is a pretty complex challenge for data vis. i don't think this will ever be built into uPlot since the required code to make it actually good would be quite large.
grafana in general will definitely need a better accessibility story, so we will have to figure something out and at minimum provide some kinds of fallback html summary tables. i imagine this will not be a trivial project. while it's easy to summarize a simple bar or pie chart with 5 series, how do you summarize 100 noisey trendlines with 2k points each? how do you summarize a histogram or temporal heatmap?
at the end of the day, the data you feed into uPlot is already there for you to create an accessibility story externally. if you'd like to write some code that can take arbitrary data as input and output something sensible, please open a PR/discussion in Grafana or uPlot.
Hey @leeoniya, great to hear that you've been involved in including uPlot. Can you now maybe talk a little bit about the React integration [1]?
Another question: are you considering making uPlot more accessible? Right now, at least the uPlot demo is inaccessible to screen reader users and only partially accessible to keyboard users.
standards-positions
-
iOS404
You can check why Mozilla and Apple have opted to not support this.
https://github.com/mozilla/standards-positions/issues/154
https://github.com/WebKit/standards-positions/issues/28
Neither Mozilla or Webkit are satisfied that the proposal is safe by default, and contains footguns for the user that can be pretty destructive.
-
Show HN: DualShock calibration in the browser using WebHID
FWIW Mozilla updated their position on Web Serial API to "neutral" and clarified that they might be okay with enabling the API with an add-on.
https://mozilla.github.io/standards-positions/#webserial
Allowing serial but not HID would be really strange. With HID you get standard identifiers that let you filter out devices that are too dangerous for the web. With serial you get nothing. Even if you know a device is dangerous, there's no way to protect users from it.
> It is available only for Google Chrome, Chromium or compatiable browsers (e.g. Edge) because it uses WebHID, a javascript extension that can be used to send commands to a HID device.
I didnât know about WebHID, but itâs interesting Firefox doesnât support it. According to Mozillaâs position[0]:
> This API, like WebUSB, provides access to generic devices. Though this API is limited to human interface devices (HID), the same concerns apply as WebUSB, namely that devices are generally not designed with access from arbitrary websites in their threat model.
-
Tailwind CSS v4.0.0 Alpha
Hasn't FireFox been dragging their asses on @scope? https://github.com/mozilla/standards-positions/issues/472
It took years to just convince them of the need for it. And I'm not sure anyone got convinced vs Chrome had already shipped it and Safari has it planned so they caved in.
Hard to believe FireFox used to be a leader of the modern web.
-
An HTML Switch Control
As mentioned by others, OK idea, but not a fan that this isn't standardized. After a quick search+peruse, these seem to indicate that it's not around the corner either. Happy (/hope) to be corrected.
-
Platform issues which disadvantage Firefox compared to first-party browsers
Mozilla's position on these specs is nicely outlined publicly and transparently as part of their standards-positions project: https://github.com/mozilla/standards-positions/issues/100
I'm kinda glad it's not implemented in my browser, to be honest, because the whole thing seems like a security nightmare.
It's a shame it impacts some hobby usecases, but I don't think this outweighs the reasoning set out on the GitHub issue.
-
What Progressive Web App (PWA) Can Do Today
This should have big warnings on it. Some of these are not web standards; they are features implemented unilaterally by Google in Blink that have been explicitly rejected by both Mozilla and Apple on privacy and security grounds.
Take Web Bluetooth, for example:
Mozilla:
> This model is unsustainable and presents a significant risk to users and their devices.
â https://mozilla.github.io/standards-positions/#web-bluetooth
Apple:
> Here are some examples of features we have decided to not yet implement due to fingerprinting, security, and other concerns, and where we do not yet see a path to resolving those concerns
â https://webkit.org/tracking-prevention/
This is Microsoftâs Embrace, Extend, and Extinguish bullshit applied to the web platform by Google. Google keeps implementing these things despite all other major rendering engines rejecting them, convinces people that they are part of the web, resulting in sites like this, then people start asking why Firefox and Safari are âmissing functionalityâ. These are not part of the web platform, they are Google APIs that have been explicitly rejected.
-
Why Are Tech Reporters Sleeping on the Biggest App Store Story?
Is BLE a PWA requirement? I think they explained their position pretty well here, regardless of whether I agree:
https://github.com/mozilla/standards-positions/issues/95#iss...
-
Reason to Use Firefox Is Sync That Works
I took a glance at Can I Use what the difference between the last public release of Firefox and Chrome is [1] and they don't really have that big of a difference in the eyes of normal use-cases? Some of these aren't implemented purely because of privacy reasons, the proposals aren't finished yet or complexity [2].
Why would Firefox need to change to Chromium engine? The only websites I notice that don't work with Firefox is because of user-agent targetting or just putting 5-second time-outs in Youtube code on non-chrome webbrowsers [3].
Can you give some examples of websites not working on Firefox?
[1] https://caniuse.com/?compare=chrome+120%2Cfirefox+121&compar...
[2] https://mozilla.github.io/standards-positions/
[3] https://www.neowin.net/news/youtube-seemingly-intentionally-...
What are some alternatives?
PlotJuggler - The Time Series Visualization Tool that you deserve.
Grafana - The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Charts - ⥠Laravel Charts â Build charts using laravel. The laravel adapter for Chartisan.
laravel-recharts - A Laravel package for using the Recharts charting Library. Docs: https://kaishiyoku.github.io/laravel-recharts
TimeChart - An chart library specialized for large-scale time-series data, built on WebGL.
network-weathermap-prometheus-datasource - attempt to add prometheus as datasource for network-weathermap
webcontainer-core - Dev environments. In your web app.
larapex-charts - A Laravel wrapper for apex charts
viz.js - Graphviz for the web (Viz.js on a diet)
WHATWG HTML Standard - HTML Standard
caniuse - Raw browser/feature support data from caniuse.com
node-red-dashboard - A dashboard UI for Node-RED