https://github.com/olivier-boudeville/ceylan-seaplus
Part of the Ceylan project gathering facilities to better integrate C/C++ code to Erlang.
https://github.com/olivier-boudeville/ceylan-seaplus
c c-plus-plus ceylan erlang integration
Last synced: about 1 year ago
JSON representation
Part of the Ceylan project gathering facilities to better integrate C/C++ code to Erlang.
- Host: GitHub
- URL: https://github.com/olivier-boudeville/ceylan-seaplus
- Owner: Olivier-Boudeville
- License: lgpl-3.0
- Created: 2019-01-18T18:49:58.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-08T20:24:38.000Z (over 1 year ago)
- Last Synced: 2025-03-21T06:33:26.631Z (about 1 year ago)
- Topics: c, c-plus-plus, ceylan, erlang, integration
- Language: Erlang
- Homepage: http://seaplus.esperide.org
- Size: 6.35 MB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Ceylan-Seaplus

This repository corresponds to the part of the [Ceylan project](https://github.com/Olivier-Boudeville/Ceylan) gathering facilities introduced in order to **better integrate C/C++ code to Erlang**.
This binding relies on a **port** (not a NIF) based on a **C-Node** and the standard **ei** (formerly: Erl_Interface), so that the integrated C/C++ code cannot jeopardise the operation of the Erlang VM (hence at the cost of a few message exchanges, yet with a low overhead, marshalling/demarshalling having to happen anyway).
**A parse transform is used in order to ease the definition of both sides** (Erlang and C) of the corresponding driver (generating the former integrally, and the latter partially; moreover a C library gathering higher-level primitives is provided in order to facilitate the development of the rest of the C side).
A complete, functional example of a service to integrate is provided (see the [foobar test C project](https://github.com/Olivier-Boudeville/Ceylan-Seaplus/tree/master/tests/c-test/foobar)).
Please refer to the [Seaplus official documentation](http://seaplus.esperide.org), otherwise to its [mirror](http://olivier-boudeville.github.io/Ceylan-Seaplus/).
The 'master' branch corresponds to the current stable version of this layer.
Ceylan-Seaplus relies on [Ceylan-Myriad](https://github.com/Olivier-Boudeville/Ceylan-Myriad).