-
Notifications
You must be signed in to change notification settings - Fork 17
Home
The wiki section of this repository provides details on the libraries that are provided within this "common" package.
All the libraries included are used within our primary kdb+ application which supported BuaBook. If you have any issues, please raise a GitHub issue and we will investigate.
The libraries included are:
- cargs.q: Enhanced command-line argument parser
- compress.q: On-disk compression helpers
- convert.q: Type conversion functions
- cron.q: Timer job scheduler
- csv.q: CSV file reader and writer
- env.q: Environment variable manager
- event.q: Event manager
- file.q: File and folder discovery
- http.q: HTTP query library
- if.q: Interface library
- ipc.q: Inter-process communication
- log.q: Simple console logger, with color and log level configuration
-
mail.q: Sending e-mail via
mailx
/mutt
- ns.q: Namespace and meta functionality
- os.q: Operating system abstraction library
- rand.q: Random data generator
- require.q: A dynamic code loading library
- slack.q: Send messages to Slack via WebHook
- so.q: Shared object / DLL function manager
- terminal.q: Terminal window size tracking
- time.q: Time accessor and utility library
- type.q: Type checking and normalisation functions
- tz.q: Timezone conversion library
- util.q: Other utility functions
- wsc.q: WebSocket client connection library
It is recommended that you use the Require library to load other libraries into a kdb+ process. There are 2 options to use require.q
:
- Use boot.q as the initialisation script to a kdb+ process
- Initialise require.q manually
If you choose not to use require.q
, your dependency manager should implement:
-
.require.lib[library]
: Load the files related to the specified library and then initialise it by calling.*library*.init[]
-
.require.libNoInit[library]
: Load the files related to the specified library only
As of version kdb-common-1.2.0-2020.06.29, a new interface library (if.q
) has been added to allow implementations of common logic to be implemented by an external system. This allows easier integration with an existing system.
When not using require.q
, ensure all expected interfaces have a default set. See if.q for the interface list.
Below is a list of libraries that are built on top of the kdb-common libraries:
- kdb-systemd - systemd Notification Interface for kdb
- kdb-elasticsearch - Elasticsearch Interface for kdb
- kdb-base64 - Base64 Encoder and Decoder for kdb
- kdb-http-webserver - HTTP Webserver for kdb
If you have an open-source library built on top of kdb-common that you would like to list here, please modify this file and send me a pull request.
This library is licensed under the Apache License 2.0:
A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.
For more details, please see https://choosealicense.com/licenses/apache-2.0/.
Copyright (C) Sport Trades Ltd 2017 - 2020, John Keys and Jaskirat Rajasansir 2020 - 2024