lukevp / ESC-POS-.NET

Efficient, Easy to Use Thermal Printing & POS (Windows/Linux/OSX, WiFi/BT/USB/Ethernet)
MIT License
522 stars 171 forks source link

Is the projet still active ? #182

Closed kedare closed 2 years ago

kedare commented 2 years ago

Hello

I see that there has been no recent update, nor PR merge, also the readme is not up to date with the current code and the targeted framework is EOL.

Do anyone know if the project is still supported or if there is any fork taking over it ?

Thanks.

lukevp commented 2 years ago

Hi @kedare ,

This project is MIT-licensed, so there is no support expressed or implied, and anyone is free to fork it. That having been said, I would prefer to upstream changes into this version of the library rather than have others make forks - if you or anyone else is interested in contributing, the biggest thing I need is keeping PRs small and scoped to the functionality meant to be introduced, keeping the direction of the project intact, and extensive peer testing of the PR by someone else with a physical printer. Otherwise it's difficult to accept these patches, because the library does so many different connection patterns (Bluetooth, Wifi, USB, Serial, Serial over USB, Ethernet) and they all have subtle differences in how they behave.

An example of "keeping the direction intact": one of the common complaints and PRs is around the way the network printer functions, where it is meant to be used as a singleton / digital twin of a printer and kept long-lived, with automatic connection recovery and live status updating - this was one of the big changes introduced into 2.0, but some want to use a fire-and-forget pattern, which causes the connection code to get a little flaky and have some race conditions. I would be totally open to making 2 different network connection types, one for fire-and-forget without status support, and another for long-lived connections, but so far the PRs have just changed the current one back to how it was before, which regresses a lot of the work and functionality that was introduced into 2.0. We should have support for both types of connections, because there are a lot of advantages to the persistent connection - you get immediate status updates when the paper runs out or the printer is opened, you can disconnect the PC from the network, or the printer, and it automatically notifies you when the connectivity is lost and when it recovers, etc. But I understand the pragmatic point of wanting the implementation to be simpler and just send a message to the printer without any status information and would be happy to get a PR that supports that too.

Could you please point me to the parts of the Readme that are out of date and/or make a PR to update the Readme? it would be really appreciated.

As for the target framework being EOL, what are you referencing there? The project is a .NET Standard 2.0 project, which is currently supported by all the latest targets of .NET (.NET 6, Xamarin, etc.) Perhaps you were thinking of .NET 2.0? Or if you are referring to the console test app being .NET Core 3.0, that code is only used during development and is not included in the published library, so that has no effect on the compatibility of the library. We could update this to .NET 6, that would be straightforward, just haven't done it yet.