SihlSihl is a high-level web application framework providing a set of composable building blocks and recipes that allow you to develop web apps quickly and sustainably. Statically typed functional programming with OCaml makes web development fun and safe.
Library sihl.authn
AuthnUse this module to verify whether a user is who the user claims to be.
Library sihl.authz
AuthzAuthorization deals with the question whether a user is allowed to do something. Use this module to separate the definition of who is allowed to do what from checking it.
Library sihl.core
CoreThis is the core of Sihl, every other component builds on top of it.
Library sihl.database
DatabaseUse this module to query the database, implement and run migrations, clean repositories, turn HTTP queries into SQL queries or for sane entity identifier handling.
Library sihl.email
EmailUse this module to send single emails either immediately or later sending a lot of emails at once. Email template support is also provided.
MessageUse this module to display flash messages to the user across the request-response lifecycle. This is typically used to provide feedback to the user after submitting HTML forms.
Library sihl.middleware
MiddlewareA middleware is a function that takes a Http.Route.handler and returns a Http.Route.handler. It is typically used to add content to the request context that is valid only during a request.
Library sihl.migration
MigrationUse the migration service to implement, register and run migrations.
QueueThis module provides a job queue. This is typically used for long-running or resource intensive tasks.
Library sihl.repository
RepositoryThe repository service deals with cleaning repositories. This is useful for integration tests.
Library sihl.schedule
ScheduleSchedules are functions that need to run periodically, similarly to cron jobs. Use this for instance to run clean up jobs.
Library sihl.server
ServerThe web server service contains a HTTP server implementation.
Library sihl.session
SessionUse this module to create user sessions and to read and write session data.
Library sihl.storage
StorageUse this module to store and retrieve large files. This is typically used for binary files such as images or audio.
Library sihl.token
TokenThe token service provides an API to generate tokens that carry some data and expire after a certain amount of time. It takes care of secure random byte generation and the persistence and validation of tokens.
Library sihl.user
UserThis module provides the abstraction of a user that interacts with the Sihl ap. Use it to register new users, changes password, reset passwords and update user details.
Library sihl.utils
UtilsA collection of services and libraries that deal with JWT, Json, Regex, Randonmness, Hashing, Time and Strings.
Library sihl.web
WebThis module provides the HTTP stack including API for requests, responses, middlewares, templating and a web server service.