quaggaJS icon indicating copy to clipboard operation
quaggaJS copied to clipboard

Is Quagga dead?

Open MidnightDesign opened this issue 5 years ago • 25 comments

Is this project still maintained? On one hand, there has been a pull request merged as late as April 16, but on the other hand there hasn't been a new version tagged in over two years.

I wanted to try to replace the ZXing scanner in our application with Quagga because ZXing doesn't support portrait barcodes and Quagga claims to do, but I couldn't get it to work because we're using TypeScript and #1adba48 hasn't been tagged yet.

Should I stick to ZXing?

MidnightDesign avatar Jul 25 '19 09:07 MidnightDesign

Hi! I would like to know too! There are news coming soon about barcodes: https://developers.google.com/web/updates/2019/01/shape-detection

It will be great if QuaggaJS still alive and continue this great work. :)

dictosistemas avatar Jul 26 '19 14:07 dictosistemas

@ericblade are you planning on releasing a new version?

UziTech avatar Jul 29 '19 19:07 UziTech

Hi! I would like to know too! There are news coming soon about barcodes: https://developers.google.com/web/updates/2019/01/shape-detection

It will be great if QuaggaJS still alive and continue this great work. :)

If I read that Google developer document correctly, it would render QuaggaJS unnecessary as the browser would have barcode detection and decoding built in--and take advantage of device hardware that is fast at doing the job. It looks to be a long ways off...especially before most modern browsers would support it.

TroyWolf avatar Aug 01 '19 23:08 TroyWolf

It looks to be a long ways off

I wouldn't expect iOS to support it for quite a few years.

UziTech avatar Aug 02 '19 03:08 UziTech

Well, I think it could be polyfilled pretty "easily" with a WebAssembly implementation.

MidnightDesign avatar Aug 02 '19 14:08 MidnightDesign

I present you the TypeScript version of QuaggaJS: https://github.com/serratus/quaggaJS/pull/385

Domratchev avatar Aug 02 '19 16:08 Domratchev

I think it could be polyfilled pretty "easily" with a WebAssembly implementation.

@MidnightDesign do you know of a polyfill that uses WebAssembly?

The only polyfills I have seen are using this library.

UziTech avatar Aug 05 '19 05:08 UziTech

@UziTech I think Google is doing something like that with their Web Perception Toolkit. But I haven't looked into it very much.

MidnightDesign avatar Aug 05 '19 07:08 MidnightDesign

Hi everyone!

I hate that this topic has had to come up so much, but the original author has moved on for some time now. I'm intending, this week to this weekend, to figure out how to setup a release off a fork, and move forward from there. (and i'll be more than happy to hand it back off to Christian if he comes back)

Quagga is an integral part of the application that I've been working on for quite some time, and I don't see it getting replaced completely in the near term. Long-term, Chrome may supplant Quagga completely with built-in features, but I think short-term, there's not many other options out there. So, I'm happy to maintain, although I'm pretty sure I've said in a few places, I don't know anything about image processing. :-D

ericblade avatar Aug 06 '19 05:08 ericblade

Clearly, that didn't happen this weekend (else I'd have posted about it), but I did take care of a lot of stuff that has been sucking up my time.. so.. on it after my work day today.

ericblade avatar Aug 12 '19 16:08 ericblade

hey all. i've got through the relatively easy part of it (which was made slightly harder by the fact that i had an existing fork, but github mostly figured that out for me yay).

So, my fork is here: https://github.com/ericblade/quagga2

I've enabled issues, merged an auto pull request that snyk generated, and will be moving on from there.

I'll generate a new npm package that'll be 99% equivalent to this current repo (minus package.json changes, the security fix, anything i have to change to get it to npm correctly) just as soon as I can. All are welcome to come and join in.

ericblade avatar Aug 13 '19 22:08 ericblade

btw, i've also released @ericblade/quagga2 to npm .. it should be functionally equivalent to the current code here, i'm working on infrastructure and maintenance mostly right now, getting dependent modules closer to up to date, testing, auto building, etc.

ericblade avatar Aug 15 '19 18:08 ericblade

Can we get Serratus to hand over control of this repo to you so that you can drive it forward here rather than in a fork? Oh and thanks for taking over. I've only used this in personal projects but it works and I'd hate to see it die.

develorem avatar Aug 19 '19 03:08 develorem

@develorem myself and @TomasHubelbauer do have collaborator access on this repo, but we don't have the other sample repos, or npm access.. so although that's how I/we wanted to do it originally, it's been a very very long time since we've heard from Christoph. I feel that it's probably best to have a new repo and a new npm package, and go from there. I don't want to break from the original, but I think we have to at this point.

  • edit: i just now realized that serratus is Christoph not Christian, I don't know how long I've had that confused in my head, and would like to sincerely apologize for any times i may have made that mistake in the past.

ericblade avatar Aug 19 '19 19:08 ericblade

Do you have a demo link of your 2.0 fork? I don’t see anything in the readme. I want to see if this works before I use it in production.

ralyodio avatar Jan 10 '20 01:01 ralyodio

I do not have a full demo that I'm serving right at the moment (i should probably look at that), but i do have a VERY simple React application that can be run quite quickly (npm install, npm run start) to check the bare minimum, and get to doing some hacking with it, if you'd like: https://github.com/ericblade/quagga2-react-example

Other than presently disabling Worker threads (i've found many issues with them) and adding a feature to add external readers, it should functionally be identical to the demo for this repo. The live_w_locator.js that is in the repo should also function with my version, if you build that, I'd think, though I've never tried it.

ericblade avatar Jan 11 '20 06:01 ericblade

I'd suggest be worth updating the readme on this repo to point at the maintained fork.

fuzzzerd avatar Feb 05 '20 22:02 fuzzzerd

Agreed with @fuzzzerd there should be indication to use the quagga2 repo front and center.

I'd also like to know the ease with which I can transfer a project from quagga to quagga, are we talking major refactors or just minor tweaks?

DerekCresswell avatar Feb 17 '20 19:02 DerekCresswell

major issue on quagga is that you can't resize the video on the screen. if you use a smaller video it will not scan images anymore. is quagga2 working differently?

baiatulutata avatar Jun 02 '20 22:06 baiatulutata

I have never intentionally attempted to resize the video area while it is running, but my app that uses quagga has not had issues with phones switching between landscape and portrait while running, which definitely triggers a resize. So, I've done nothing specific towards that end, but if you have some code that can show a problem, I'd be more than happy to look into it.

ericblade avatar Jun 03 '20 01:06 ericblade

Agreed with @fuzzzerd there should be indication to use the quagga2 repo front and center.

I'd also like to know the ease with which I can transfer a project from quagga to quagga, are we talking major refactors or just minor tweaks?

While I do have collaborator access to this repo, I am not wanting to steal any credit due to Christoph, nor make it appear that he does specifically endorse the new repository. While we have had contact a few times over the last couple of years, I have not received an endorsement from him for forking. So, unless he specifically tells me that I have his blessing, I'm not modifying his repo to point to mine.

ericblade avatar Jun 03 '20 01:06 ericblade

1s of all, @ericblade , I totally appreciate your work. I really do! My main issue now is that I am trying to use old quaga in a modal window. This limits the video size to I don't know, 300x400 lets say. Isn't that affecting the scan quality? I noticed that when I pass a bigger video feed to the app the scans are faster and quicker but when I do that my screen gets screwed up. I'm resizing the video tag now after i start quaga but the nice debugger boxes that show the user that the scan is working are still following the initial path.

baiatulutata avatar Jun 03 '20 04:06 baiatulutata

Honestly, if you want to move this discussion over to my repo, or a new issue here, that might be a good idea, it's not really relevant to the topic of this issue. That said, I think that some research could stand to be done on exactly how cameras work in browsers, and some differences between how they work on phone browsers and non-phone, I've seen some fairly significant differences between playing with various options on desktop vs how they react on a phone. I honestly don't have the slightest idea how resizing the video area works. If you request a camera at 800x600, but the video area is only 400x300, does the browser rescale the image to fit the video area? does it force the video area to fit the camera view? I think that there's some difference between how that behaves on a PC and on an Android at least.

ericblade avatar Jun 03 '20 08:06 ericblade

do you know any alternative to quagga?

edw19 avatar Jun 04 '22 03:06 edw19

https://github.com/ericblade/quagga2

UziTech avatar Jun 04 '22 05:06 UziTech