HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
explosion
spaCy
Python2016–2026
explosion / spaCy

spaCy

💫 Industrial-strength Natural Language Processing (NLP) in Python

20Distinct people
29Mentions
0Explicit recommenders
34KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

💫 Industrial-strength Natural Language Processing (NLP) in Python

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year29 dated mentions

Observed mentions: 2016-03-07 08:22:26 UTC to 2026-03-19 23:02:22 UTC.

02462016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 6 mentions; 3 submissions, 3 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 7 mentions; 4 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 5 mentions; 3 submissions, 2 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC633
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC743
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC211
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC532
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC110
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC312
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

29 sources
It's mostly torch, I think. It pulls in NVIDIA libs (which … makes sense, I guess), and NVIDIA is just not at all judicious when it comes to disk space. I literally run out of disk trying to install this on Linux. On macOS, it's a markedly different experience: it's only ~700 MiB there; I'm assuming b/c no NVIDIA libs get pulled in, b/c why would they. For anyone who might want to play around with this: I can get down to ~3 GiB (& about 1.3 GiB if you wipe your uv cache afterwards) on Linux if I add the following to the end of `pyproject.toml`: [tool.uv.sources] # This tells uv to use the specific index for torch, torchvision, and torchaudio torch = [ {index = "pytorch-cpu"} ] torchvision = [ {index = "pytorch-cpu"} ] torchaudio = [ {index = "pytorch-cpu"} ] [[tool.uv.index]] name = "pytorch-cpu"
Read the rest
url = "https://download.pytorch.org/whl/cpu" & add "torch" to the direct dependencies, b/c otherwise it seems like uv is ignoring the source? (… which of course downloads a CPU-only torch.) This is an example of what one sees under Linux: nvidia-nvjitlink-cu12 ------------------------------ 23.83 MiB/37.44 MiB nvidia-curand-cu12 ------------------------------ 23.79 MiB/60.67 MiB nvidia-cuda-nvrtc-cu12 ------------------------------ 23.87 MiB/83.96 MiB nvidia-nvshmem-cu12 ------------------------------ 23.62 MiB/132.66 MiB triton ------------------------------ 23.82 MiB/179.55 MiB nvidia-cufft-cu12 ------------------------------ 23.76 MiB/184.17 MiB nvidia-cusolver-cu12 ------------------------------ 23.84 MiB/255.11 MiB nvidia-cusparselt-cu12 ------------------------------ 23.99 MiB/273.89 MiB nvidia-cusparse-cu12 ------------------------------ 23.96 MiB/274.86 MiB nvidia-nccl-cu12 ------------------------------ 23.79 MiB/307.42 MiB nvidia-cublas-cu12 ------------------------------ 23.73 MiB/566.81 MiB nvidia-cudnn-cu12 ------------------------------ 23.56 MiB/674.02 MiB torch ------------------------------ 23.75 MiB/873.22 MiB That's not all the libraries, either, but you can see NVIDIA here is easily over 1 GiB. It also then crashes for me, with: File "KittenTTS/.venv/lib/python3.14/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') pydantic.v1.errors.ConfigError: unable to infer type for attribute "REGEX" Which seems to be [this bug in spacey](https://github.com/explosion/spaCy/issues/13895), so I'm going to have to try adding `<3.14` to `requires-python` in `pyproject.toml` too I think. That is, for anyone wanting to try this out: -requires-python = ">=3.8" +requires-python = ">=3.8,<3.14" (This isn't really something KittenTTS should have to do, since this is a bug in spacey … and ideally, at some point, spacey will fix it.) Also: + curated-tokenizers==0.0.9 This version is so utterly ancient that there aren't wheels for it anymore, so that means a loooong wait while this builds. It's pulled in via misaki, and my editor says your one import of misaki is unused. Hilariously, removing it breaks but only on macOS machine. I think you're using it solely for the side-effect that it tweaks phonemizer to use espeakng, but you can just do that tweak yourself, & then I think that dependency can be dropped. That drops a good number of dependencies & really speeds up the installation since we're not compiling a bunch of stuff. You need to add `phonemizer-fork` to your dependencies. (If you remove misaki, you'll find this missing.)
In Show HN: Three new Kitten TTS models – smallest less than 25MB
I can't speak for the parent commenter, but there is often code processing the input/output of machine learning models that benefits from high-performance implementations. To give two examples: 1. We recently implemented an edit tree lemmatizer for spaCy. The machine learning model predicts labels that map to edit trees. However, in order to lemmatize tokens, the trees need to be applied. I implemented all the tree wrangling in Cython to speed up processing and save memory (trees are encoded as compact C unions): https://github.com/explosion/spaCy/blob/master/spacy/pipelin... 2. I am working on a biaffine parser for spaCy. Most implementations of biaffine parsing use a Python implementation of MST decoding, which is unfortunately quite slow. Some people have reported that decoding dominates parsing time (rather than applying an expensive
Read the rest
transformer + biaffine layer). I have implemented MST decoding in Cython and it barely shows up in profiles: https://github.com/explosion/spacy-experimental/blob/master/...
In Cython is 20
I'm sorry that this conflicted with your plans, but I feel strongly that distributing Python libraries via system package managers such as apt is very bad for users. The pain is felt especially by users who are relatively new to Python, who will end up with their system Python in a confusing state that is difficult to correct. We of course encourage anyone to clone the repo or install from an sdist if they want to compile from source. In fact you can do the following: git clone https://github.com/explosion/spaCy cd spaCy make This will build you a standalone executable file, in the pex format, that only depends on your system Python and does not install any files into your system. You can copy this artifact into your bin and use it as a command-line application.
In SpaCy 3.0

Showing the 15 most recent of 29 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.