https://github.com/jefrisibarani/tobasa-cpp
Tobasa C++ Framework - Web Server, SQL Abstraction, Laboratory Information System (LIS)
https://github.com/jefrisibarani/tobasa-cpp
asio hl7 http-client http-server lis orm-framework rest sql websocket
Last synced: 14 days ago
JSON representation
Tobasa C++ Framework - Web Server, SQL Abstraction, Laboratory Information System (LIS)
- Host: GitHub
- URL: https://github.com/jefrisibarani/tobasa-cpp
- Owner: jefrisibarani
- License: other
- Created: 2026-03-11T19:33:07.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-18T09:24:55.000Z (about 2 months ago)
- Last Synced: 2026-04-18T11:32:47.450Z (about 2 months ago)
- Topics: asio, hl7, http-client, http-server, lis, orm-framework, rest, sql, websocket
- Language: C
- Homepage:
- Size: 7.52 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tobasa C++ Libraries
Tobasa is a collection of small, focused C++ libraries that form the
building blocks web‑service applications.\
Each sub‑project is self‑contained; you can link only the libraries you need.
## Projects in this repository
| Module | Description |
|----------------|-------------|
| `tobasa` | **Common library** – utilities such as logging, configuration, JSON,
| | date/time, string helpers, plugins, task manager, etc.
| | This is the foundation for all other Tobasa components. |
| `tobasahttp` | **HTTP library** – Asio‑based HTTP/1.1 and HTTP/2(with nghttp) server and client with
| | optional TLS, WebSocket, multipart parsing, etc. |
| `tobasaweb` | **Web App/REST framework** – routing, controllers, middleware, JWT/session
| | support built on top of `tobasahttp` and `tobasasql`. |
| `tobasasql` | **SQL abstraction** – lightweight wrapper around SQLite/MySQL/Postgres
| | and MSSQL(through ODBC and ADO) with connection pools, query helpers. |
| `tobasalis` | **LIS (Lab Instrument) library** – message parsing (LIS2‑A2/ASTM and HL7),
| | TCP/serial transports, session management. |
| `webservice` | **Example web service application** – integrates the above libraries
| | into a runnable server with configuration and database helpers. |
| `webclient` | **HTTP client demo** – simple client using `tobasahttp`.
## Repository layout
```
src/
app_server/ # sample webservice application
ext/ # bundled third-party libs
samples/ # samples projects
tobasa/ # core helpers library
tobasahttp/ # HTTP transport library
tobasaweb/ # Web App framework library
tobasasql/ # SQL abstraction library
tobasalis/ # LIS protocol support library
CMakeLists.txt # top-level CMake project
CMakeDefaults.txt # machine-specific default paths
build/ # out-of-source build directory
_output/ # packaged build result
```
## Build
Tobasa uses CMake as the build system. The project is currently tested with
MSVC on Windows and GCC on Linux.
### Windows
- Visual Studio 2017
- Visual Studio 2022
### Ubuntu Server 20.04.5
- GCC 9.4.0
- GCC 11.1.0
See [build_all.cmd](./build_all.cmd) and [build_all.sh](./build_all.sh) for example\
See also [BUILD](./BUILD.md) for more information
## License
Tobasa libraries are licensed under the GNU LGPL (Lesser General Public License).\
Tobasa applications are licensed under the GNU GPL (General Public License).
---
(See also each subdirectory’s README for detailed information on that module.)