# Lakutata > An IoC application framework for Node.js and TypeScript: web services, command line tools, desktop (Electron) > applications and services on devices. The guides and the examples below are plain Markdown. The same files ship in > the npm package lakutata (node_modules/lakutata/doc/en), in the version a project has installed: those win over these, > which follow the latest sources. The Agent Skill of lakutata, for AI coding assistants: https://lakutata.com/skill/ All the guides in one file: https://lakutata.com/llms-full.txt ## Guides - [Overview](https://lakutata.com/doc/en/Overview.md): The subpaths of lakutata, and the list of the guides - [GettingStarted](https://lakutata.com/doc/en/GettingStarted.md): Requirements, creating a project, adding Lakutata to an existing project, a first application - [ProjectStructure](https://lakutata.com/doc/en/ProjectStructure.md): The files, scripts and features of the projects made from the templates, and templates of your own - [UpgradingFrom2](https://lakutata.com/doc/en/UpgradingFrom2.md): Upgrading a project from Lakutata 2.x (the package `lakutata` 2.x) - [UpgradingFrom1](https://lakutata.com/doc/en/UpgradingFrom1.md): Porting a project from Lakutata 1.x (`@lakutata/core` 1.x and the `@lakutata-module/*`, `@lakutata-component/*` packages) - [Application](https://lakutata.com/doc/en/Application.md): The application: its options, the fluent API, the lifecycle, the mode, packed applications - [Objects](https://lakutata.com/doc/en/Objects.md): Components, providers and their container: lifetimes, scopes, creation and teardown, a container without an application - [Injection](https://lakutata.com/doc/en/Injection.md): Dependency injection, the options of objects, sharing features between applications - [DTOValidation](https://lakutata.com/doc/en/DTOValidation.md): DTOs and schemas: validating options, inputs and results - [Exceptions](https://lakutata.com/doc/en/Exceptions.md): Declaring exceptions, their messages, what the clients receive, the exceptions of the framework - [Logger](https://lakutata.com/doc/en/Logger.md): The `log` component: writing lines, readable lines or JSON, destinations, another logger - [Decorator](https://lakutata.com/doc/en/Decorator.md): The decorators, by subpath - [Time](https://lakutata.com/doc/en/Time.md): The `Time` class - [HelperFunctions](https://lakutata.com/doc/en/HelperFunctions.md): The helper functions of `lakutata/utils` - [Controllers](https://lakutata.com/doc/en/Controllers.md): Controllers and actions: their addresses, input and results, prefixes, inheritance - [Entrypoint](https://lakutata.com/doc/en/Entrypoint.md): The entrypoint component: its options and adapters, starting and stopping, the list of the actions - [Middlewares](https://lakutata.com/doc/en/Middlewares.md): The middlewares and the access control of the actions - [HTTP](https://lakutata.com/doc/en/HTTP.md): The HTTP adapters: routes, input, responses, errors, the features of Express and Fastify - [CLI](https://lakutata.com/doc/en/CLI.md): Command line tools: commands, options, prompts, output and exit codes - [ServiceCalls](https://lakutata.com/doc/en/ServiceCalls.md): The service actions over HTTP, Socket.IO, JSON-RPC 2.0 and Electron: patterns, responses, clients and their events - [GRPC](https://lakutata.com/doc/en/GRPC.md): The service actions over gRPC (`@lakutata/grpc`), and calling them from other applications and languages - [NATS](https://lakutata.com/doc/en/NATS.md): The NATS component, the service actions over NATS (`@lakutata/nats`), the service proxies and their events - [Schedules](https://lakutata.com/doc/en/Schedules.md): Scheduled jobs: intervals, cron expressions, jobs run by one instance - [Queue](https://lakutata.com/doc/en/Queue.md): The message queues: producers, `@QueueAction` consumers, retries, dead letters, results - [Database](https://lakutata.com/doc/en/Database.md): The `Database` component and provider, the connection options, several databases - [DatabaseDrivers](https://lakutata.com/doc/en/DatabaseDrivers.md): The database drivers, one by one: what to install, their options, their limits - [MongoEmbedded](https://lakutata.com/doc/en/MongoEmbedded.md): A MongoDB inside the application, its documents in files - [Entities](https://lakutata.com/doc/en/Entities.md): The entities, the queries, the transactions and the errors - [Migrations](https://lakutata.com/doc/en/Migrations.md): Writing, generating and running the migrations - [Cache](https://lakutata.com/doc/en/Cache.md): The `Cacher` component: `wrap()`, the stores and their tiers, what they keep - [Mutex](https://lakutata.com/doc/en/Mutex.md): Locks shared between processes and instances - [I18n](https://lakutata.com/doc/en/I18n.md): Messages in several languages - [DockerIntegration](https://lakutata.com/doc/en/DockerIntegration.md): The `Docker` component - [ContainerdIntegration](https://lakutata.com/doc/en/ContainerdIntegration.md): The `Containerd` component - [Monitor](https://lakutata.com/doc/en/Monitor.md): The CPU, memory, event loop and HTTP request monitors - [Security](https://lakutata.com/doc/en/Security.md): Hashing, ciphers, signatures, passwords - [DBus](https://lakutata.com/doc/en/DBus.md): A D-Bus service and client (`@lakutata/dbus`): methods, objects, properties, signals - [MCP](https://lakutata.com/doc/en/MCP.md): The tools, resources and prompts of the Model Context Protocol (`@lakutata/mcp`), over stdio and HTTP - [Command](https://lakutata.com/doc/en/Command.md): The `lakutata` command: creating projects, migrations, translations, environment variables - [Workspaces](https://lakutata.com/doc/en/Workspaces.md): Projects of several packages: running their scripts, giving them a version, adding packages - [NativeAddons](https://lakutata.com/doc/en/NativeAddons.md): Native addons in C++ or Rust: creating them, linking libraries, shipping them - [Packaging](https://lakutata.com/doc/en/Packaging.md): Bundles and executables, and what a packed application reads at run time - [Installers](https://lakutata.com/doc/en/Installers.md): The installers of each platform, services, installer scripts, signing ## Examples - [A REST API with a database](https://lakutata.com/doc/en/examples/RestAPI.md): The `service` template, an entity and its migration (SQLite), DTO validation, an exception with its HTTP status, pagination, tests - [A command line tool](https://lakutata.com/doc/en/examples/CommandLineTool.md): The `cli` template, commands with arguments and options (`@CLIAction` and their DTOs), the validation errors, asking for a missing option in the terminal, the exit codes, tests, a bundle that runs without `node_modules` - [A web application with a user interface](https://lakutata.com/doc/en/examples/WebApp.md): The `web-react` template, an HTTP API under `/api` with its data in a component, a React page that calls it (through the Vite proxy in development), the page served by the built application and from the resources of a bundle (`lakutata.resources`, `resourcesPath()`), tests - [A desktop application](https://lakutata.com/doc/en/examples/DesktopApp.md): The `electron-react` template, a notes app: the actions of the main process called over IPC, a system dialog, events pushed to the window, tests that run without Electron - [Calls between services](https://lakutata.com/doc/en/examples/ServiceCalls.md): Two `service` projects: `@ServiceAction` patterns with `@Prefix`, the HTTP service transport, a proxy component that calls it, a token between the services, the callee's refusal passed back to the caller (409), the tests of each service with a stand-in in the test process - [Background jobs](https://lakutata.com/doc/en/examples/BackgroundJobs.md): The `service` template, a queue (memory driver) and its `@QueueAction`, retries and the dead letter queue, a cron schedule run in one instance with a lock, two instances sharing a directory, tests that replace a component - [An MCP server for AI assistants](https://lakutata.com/doc/en/examples/MCPServer.md): The `default` template, tools, a resource and a prompt served over stdio and HTTP, arguments validated by DTOs, registration in Claude Code and Claude Desktop, tests with the SDK's MCP client - [A service on a device](https://lakutata.com/doc/en/examples/DeviceService.md): The `service` template with its `installer` feature: a scheduled action, components with options, the monitors, configuration through environment variables, a system service installed by deb/rpm packages, tests ## Optional - [Chinese](https://lakutata.com/zh/llms.txt): the same guides and examples in Chinese