Hacker News new | past | comments | ask | show | jobs | submit login

> Uses SQLite, and no external dependencies except Python 3.10+

I don't know if it's the way it's been written, but it reads to me that only python is needed, no libraries.

I'm assuming this isn't true though: I can see a lot of libraries: https://github.com/tsileo/microblog.pub/blob/v2/pyproject.to...




I would have guessed that it means something like "you know how you need to get postgres, redis, and elasticsearch up for a good mastodon install? none of those"


Yeah, when the author writes "external" I think they mean "runs outside the Python interpreter process".


Probably, but these are external dependencies. Whether they are python dependencies or not wouldn't change that.

If someone writes "no external dependencies except Python 3.10" I'd expect that thing to run out of the box on any system that has Python 3.10 on it. The developer promised after all that this was the only dependency.

When I realize that there are in fact a heap of external python modules you need to install, I loose a lot of trust in the proficiency of the project.

No external dependencies means that you just use the standard python interpreter and you maintain all the code you are using (outside of what the language provides). No external dependencies speaks of a willingness to go the extra mile to reduce size, make the thing universally runnable and easy to install and to avoid having random (potentially unchecked) code running inside your project. So it is a statement to make.

Most projects I work on have external dependencies, but I: A.) try to keep them to a minimum and only rely on vetted and tested ones and B.) I don't claim there are no external dependencies


(author here)

I see the confusion, I tweaked the README to remove that claim. But I indeed meant "no external dependencies like postgres/redis..".


No system-wide dependencies maybe ?

I personally value a lot not having to install stuff by hand on my system, hoping for the version of the said dependencies in my OS package manager end up working with the software I want to use. Using dependencies managed by the language dependency manager removes 99% of the dependency hassle.

(Yes, I know I could install an complete second distro in docker and run the software there. But I won't, thank you).


Perhaps "does not depend on any external services, like posgresql or redis"?


So the usual pile of library dependencies, but no service dependencies.

It is like talking about storage fragmentation: one layer's internal fragmentation is the next's external fragmentation.


I assume the author means "no [system-level] external dependencies except Python 3.10+ [in order to install the software]". Python then installs the required application-level dependencies.


I feel like Python 3.10 is large dependency -- almost no one would use it unless required.


Python 3.10 is standard even in the latest debian version, nearly every Linux that you would setup today has python >=3.9 preinstalled. Unless you use some sort of "webspace" type of provider that only allows PHP, this should not be an issue (in fact I had a webspace once and it too had python, I just had to ask).

So python 3.10 is not an external dependency here, because external implies you need to install it.

But all the non-standard python modules used (humanize, ...) are definitly external dependencies and that can be an issue if you try to run your service in such a restricted environment.


Python is already included on most Linux systems




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: