Skip to content
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

Rewrite from scratch with Go #36

Closed
17 of 19 tasks
crazy-max opened this issue Feb 7, 2018 · 2 comments
Closed
17 of 19 tasks

Rewrite from scratch with Go #36

crazy-max opened this issue Feb 7, 2018 · 2 comments
Assignees
Milestone

Comments

@crazy-max
Copy link
Owner

crazy-max commented Feb 7, 2018

@crazy-max crazy-max self-assigned this Feb 7, 2018
@crazy-max crazy-max added this to the 5.0.0 milestone Feb 7, 2018
@masgo
Copy link

masgo commented Feb 8, 2018

I am worried that a rewrite might make this rather small tool which does it's job to something big which is no longer handy for automated purposes. Having something like a webui is nice for beginners, but I would not want it on a server where I call ftpgrab from cron.

So, the question is: what is your goal?

The pro and cons right now are (from my point of view)

  • pro: minimal requirements
  • pro: quite lightweight and simple
  • pro: good for automation with cron, etc.
  • pro/con: relies on wget and curl. This is a (big) pro because it makes it flexible and compatible to a lot(!) of servers, crypto alogs, etc. Also, security wise, wget and curl have a larger community which patches security problems.
  • con: relies on wget and curl -> the speed is quite low, especially with curl
  • con: low portability
  • con: the documentation on how to run it as non-root is poor

@crazy-max
Copy link
Owner Author

crazy-max commented Feb 8, 2018

Hello @masgo, don't worry, the webui functionality would be available as a "plugin". FTPGrab will remain primarily an automation process.

As far as the complete rewriting is concerned, I chose Golang because I master this language. This will make it easier for me to maintain the code and have cross-compatibility with the different platforms, which is not possible with shell language.

For your concern about the compatibility and support provided by curl or wget, I could use libcurl (binding to golang) but instead I'll use the native FTP protocol in C via Go which on the one hand will greatly improve performance but also improve security.

The fact of choosing curl or wget in the beginning was simply motivated for its portability. With the new version we will be able to keep this portability, lighten the code, extend the functionality and improve performance.

And thanks for your input!

@crazy-max crazy-max changed the title Rewrite from scratch with Go language :) Rewrite from scratch with Go Dec 31, 2018
@crazy-max crazy-max pinned this issue Dec 31, 2018
@crazy-max crazy-max unpinned this issue Dec 31, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants