Recently I added support of PEP 621 to the PEP 517 backend used by PDM. It can also be used as a PEP 517 backend on itself.
Here it is: GitHub - frostming/pdm-pep517: PEP 517 support for PDM
It can read the metadata of PEP 621 from pyproject.toml. I am not sure if I read the specification correctly so there may be some subtle differences. Any suggestions and feedbacks are welcome. Thanks in advance.