Ocean is general purpose library with a focus on supporting the development of high-performance, real-time applications
To use this package, run the following command in your project's root directory:
Put the following dependency into your project's dependences section:
Ocean is a general purpose library, compatible with both D1 and D2, with a focus on supporting the development of high-performance, real-time applications. This focus has led to several noteworthy design choices:
- Ocean is not cross-platform. The only supported platform is Linux.
- Ocean assumes a single-threaded environment. Fiber-based multi-tasking is favoured, internally.
- Ocean aims to minimise use of the D garbage collector. GC collect cycles can be very disruptive to real-time applications, so Ocean favours a model of allocating resources once then reusing them, wherever possible.
Ocean began life as an extension of
<http://www.dsource.org/projects/tango>_, some elements of which were
eventually merged into Ocean.
Since v5.0.0_, Ocean is a D2-only library.
Build / Use
This library has quite a number of dependencies, but it depends on which modules you want to use. Usually the easiest way to find out is just using it and see which libraries the linker fails to find and then install by demand.
If you want to install everything, then the list is as follows (for an
absolutely up to date list you can take a look at the
Build.mak file, in
To install those dependencies on Ubuntu refer to the
apt-get install command in
Please note that
ebtree is not the vanilla upstream version. We created our
own fork of it to be able to write D bindings more easily. You can find the
needed ebtree library in https://github.com/sociomantic-tsunami/ebtree/releases
(look only for the
v6.0.socioX releases, some pre-built Ubuntu packages are
If you plan to use the provided
Makefile (you need it to convert code to
D2, or to run the tests), you need to also checkout the submodules with
submodule update --init. This will fetch the
<https://github.com/sociomantic-tsunami/makd>_ project in
ocean's versioning follows
This means that the major version is increased for breaking changes, the minor version is increased for feature releases, and the patch version is increased for bug fixes that don't cause breaking changes.
- Major branch development period: 6 months
- Maintained minor versions: 2 most recent
Maintained Major Branches
====== ==================== =============== Major Initial release date Supported until ====== ==================== =============== v5.x.x v5.0.0: 04/04/2019 TBD ====== ==================== =============== .. v5.0.0: https://github.com/sociomantic-tsunami/ocean/releases/tag/v5.0.0
Latest release notes
<https://github.com/sociomantic-tsunami/ocean/releases/latest> | `All
Releases are handled using GitHub releases. The notes associated with a major or minor github release are designed to help developers to migrate from one version to another. The changes listed are the steps you need to take to move from the previous version to the one listed.
The release notes are structured in 3 sections, a Migration Instructions, which are the mandatory steps that users have to do to update to a new version, Deprecated which contains deprecated functions that are recommended not to use but will not break any old code, and the New Features which are optional new features available in the new version that users might find interesting. Using them is optional, but encouraged.
See the guide for
contributing to Neptune-versioned libraries
.. |TravisCI| image:: https://travis-ci.com/sociomantic-tsunami/ocean.svg?branch=v5.x.x .. _TravisCI: https://travis-ci.com/github/sociomantic-tsunami/ocean
- Registered by Mathias Lang
- 5.4.1 released a month ago
- BSD 3-clause or check Ocean license
- Copyright (c) 2004 dunnhumby Germany GmbH and Tango contributors. All rights reserved.
- System dependencies:
- Depending on the component used you might need one of the following libraries (check the used modules for details): -lglib-2.0 -lpcre -lxml2 -lxslt -lreadline -lhistory -llzo2 -lbz2 -lz -ldl -lgcrypt -lgpg-error -lrt -lebtree (version from https://github.com/sociomantic-tsunami/ebtree)
5.4.1 2020-Dec-12 5.4.0 2020-Aug-18 5.3.1 2020-Dec-12 5.3.0 2019-Nov-26 5.2.2 2020-Dec-12
- Download Stats:
1 downloads today
1 downloads this week
3 downloads this month
19 downloads total
- Short URL: