-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
crossfilter2 and d3 #1362
Comments
dc.js is compatible with the latest crossfilter2, which is 1.4.*. I think we decided that crossfilter 2.0 was a mistake and it was dropped, but in any case dc.js should be forever compatible with any version of crossfilter, because dc.js uses such a tiny part of the API. dc.js is not compatible with d3v4 or d3v5 and this probably won't change soon. So the latest compatible version is d3 3.5.17. I am still hoping to find time for the port in #1173 but it it seriously weeks of effort, especially if we undertake splitting dc.js into multiple libraries like d3 did (which would be very helpful). Since I have a day job I can't say when this will happen. |
Thank you for the prompt response.
I mean my acquaintance with these libraries (dc, d3, crossfilter) has just begun and I don't have much knowledge/understanding of them. And one of the things I would like to do is to follow the best practices that you are telling on how to use dc.js. So, I'll need to learn crossfilter at least a little to be able to understand what is going on in the old project, but would it be possible to do without crossfilter2.js in the new project and achieve the same things with DC.js using some other technics? (forgive me my ignorance) |
It's possible, but I wouldn't recommend it. Crossfilter is "deceptively simple" - it just does binning and aggregation, but it does these things very well and very efficiently. You could provide other objects to dc.js that support the interface it expects, which is mostly just group.all() and dimension.filter*(), but I'd never recommend this just to remove a dependency, since crossfilter does subtle things and it is battle-tested. The best reason I know to do this is if your data is too large for crossfilter (>500k rows). The two big reasons Crossfilter is so fast are
It's a steep but short learning curve to understand what crossfilter does, and you'll still need to learn what it does even if you decide you want to replace it. By the time you learn, you'll probably appreciate why you don't want to do that. 😸 |
Yes, I think you are 100% right. Crossfilter2 should definitely survive in my project. By any chance, do you plan in the near future to release a new dc package which would point to the latest compatible version of crossfilter2? Currently, dc@2.1.9 requires: Today the dependencies resolve to:
But dc could well work with a newer version with which it is compatible, namely crossfilter2@1.4.5 Thanks a lot. |
Yes. I have already updated it on develop and it will go out in the next point release. I don't like to do releases just to update dependencies, so I usually wait until there is something substantial. But I can do this soon. I had held off on this update because there is a slight performance regression in crossfilter due to the support for more dimensions. But it is small and I don't think it's anything to worry about. |
Yes, I should have took a look at the code in repository first 😭 where I would see that this was already done 😭😭😭 |
Release 2.1.10 updates the dependencies. |
🙏😌 that's so good! thx! |
Hello,
I have a question about the roadmap.
There are some examples here: http://dc-js.github.io/dc.js/examples/
All of them reference the following versions:
And the same things I can see in the npm-shrinkwrap.json file (which is good):
The latest versions that are available today in npm:
Questions:
Thank you.
The text was updated successfully, but these errors were encountered: