Так же как, чтобы написать приложение на жаве ты можешь пользоваться спрингом, а можешь не пользоваться, а можешь только на полшишки.
Чтобы написать либу, ты можешь использовать теоркатные построения для ядра библиотеки, для отдельных конструкций, или вообще без них обойтись