Hosting Library server

Hi there,

First of all, great project!

One of the biggest hurdles I’ve encountered so far is the availability of libraries. For most designs I still have to import components from external libraries. Back in the Eagle 3.x days, a key advantage was the user‑contributed library ecosystem. Some good, some bad, but nevertheless contributing to the overall knowledge-base.

I can understand, that the developing team has not the capacity to curate such at the moment. Therefore my take would be, how one could include such user-contribution to the project.

I saw in the workspace config dialog that it is possible to connect further services via API.

Is there any description to be found how a second library API server may be used here? What API functions needs this secondary library server to serve?

My background to this is, that I would like to host an internal library server for our organisation. On the further perspective I would then like to open this server to the public.

What do you think?

regards

MW

Hi @Walter11,

Thanks :smiling_face:

Absolutely. This is regularly reported by users, and is clearly something that we have to work on. For long term, we have to extend our libraries a lot, but that will take a huge amount of resources which we don’t have at the moment. So we also need short-time solutions, for example to get parts on-demand from services like SnapEDA or pcblibraries.com, or to simply share “unofficial” libraries between users. The Eagle & KiCad importers are also made to provide a short-term solution for the library problem.

Regarding your concrete question: The API for providing libraries is documented here:

When you host a server that implements this API, anyone who has access to the server can add it to the workspace settings and will get the libraries from that server.

The implementation of such a server can actually be quite trivial. In fact, our official server is just a python script that periodically pulls the libraries from GitHub, parses their metadata, saves a JSON file according the API spec, and a static web server hosts that JSON file :wink:

Also for companies, I actually do have plans to provide some kind of web panel where they can host their own (private) libraries for easy library deployment within an organization. We should provide paid services to professional users anyway (like an official customer support), to ensure a sustainable funding of the development for long term. The ability of managing company libraries could be part of that paid services (fully optional of course – it will always be possible to implement & host such a server for free by yourself).

As soon as we have built such a system for companies, actually it may also be used to share libraries publicly :thinking:

Anyway, those are ideas for the future – implementing the API by yourself, and sharing the URL to other users, is already possible today.

Just in case you would be interested in an official solution of internal library management, and official customer support, as part of a paid subscription – please let me know (feel free to PM me, or mail to Contact | LibrePCB). Instead of building something on my own and hoping that companies are interested in buying it, it would be great to have a concrete customer to better understand the needs and to start building up the services together :slightly_smiling_face: