Skip to content

c100k/libmodulor

Repository files navigation

libmodulor

npm version license

A TypeScript library to create platform-agnostic applications.

Warning

The project is still in active development. Although already used in pilot projects, it's not suitable for all production scenarios yet. Being developed by only one person, it may keep going for years or stop at any time. In the meantime, it's still a "research project" that needs improvement. Thus, it will be subject to BREAKING CHANGES as long as the version is not 1.0.0. All that said, the end goal is really to have a production-grade library to help everyone build quality projects faster.

Links

Getting Started

As described in the Architecture concept, libmodulor follows a 4-layer architecture with UseCase, App, Product, and Target.

Here is how to easily create all of them, in a brand new project :

# Create a project
npx libmodulor CreateProject --projectName my-super-project
cd my-super-project

# Create an app
pnpm libmodulor CreateApp --appName Banking

# Create a use case
pnpm libmodulor CreateUC --appName Banking --ucName CreateAccount

# Create a product
pnpm libmodulor CreateProduct --productName CustomerPortal

# Create a target
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-express-server
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-hono-server
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-core-cli
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-mcp-server

For more params, checkout the help section : pnpm libmodulor --help.

And for more details on the code, follow the ad-hoc guides in the documentation.

👨‍💻 Contribute

If you think you can help in any way, feel free to contact me (cf. author in package.json). I'd love to chat.

⚖️ License

LGPL-3.0