Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Portable Multiprocessing Library for C

License

NotificationsYou must be signed in to change notification settings

nontan-rh/libaramid

Repository files navigation

libaramid is a multiprocessing library for C which employs the work-stealing algorithm, fork-join model, and task flow model.This library focuses on portability and usability in real-world applications.

Key Features

  • Largely compliant with C99 (but a few unavoidable intrinsics)
  • Abstracting underlying thread APIs
  • Independent of ABI specifics
  • Tested on a bunch of environments (including real smartphone devices and Webassembly)
  • Error handling API
  • Various ways to synchronization
  • Custom scheduling
  • Capability to use from other languages

Supported Platforms

Tested platforms and toolchain

OSCPUCompilerNote
Linuxx64ClangVerified using ASAN
macOSx64AppleClangVerified using ASAN
Windowsx64MSVC
MinGW
iOSARMv8AppleClangBuild only (automatic test planned)
AndroidARMv8GCC
WASM-EmscriptenTested on Headless Chrome

Getting Started

CMake

NOTE: Android NDK can utilize CMake and it requiresNinja

You can useExternalProject to add to your project.SeeCMake Documentationif you don't know how to use the feature.

cmake_minimum_required(VERSION 3.10.2)ExternalProject_Add(libaramid    GIT_REPOSITORY https://github.com/nontan-rh/libaramid.git    GIT_TAG master    GIT_SHALLOWON    SOURCE_DIR"${CMAKE_CURRENT_BINARY_DIR}/libaramid-src"    BINARY_DIR"${CMAKE_CURRENT_BINARY_DIR}/libaramid-build"    CONFIGURE_COMMAND""    BUILD_COMMAND""    INSTALL_COMMAND""    TEST_COMMAND"")target_link_libraries(<your_target> aramid)

Carthage

NOTE: You needcmake in addition to Xcode and Carthage.

github "nontan-rh/libaramid"

Development

NOTE: In-source build is disabled

Generic

$ mkdir -p build&&cd build$ cmake .. -DCMAKE_BUILD_TYPE=Debug$ cmake --build.# for Linux, macOS, Windows$ ctest# for Wasm$ python3 -m http.server --directory test_executable 8080# -> then visit localhost:8080

Android

Openetc/android/TestProject as a project with AndroidStudio

iOS

Openetc/ios/libaramid/libaramid.xcodeproj with Xcode

Third Party Licenses

Build scripts or test drivers in this repository include some third-party software.

ProjectLicenseURL
ios-cmakeBSD-3-Clausehttps://github.com/leetal/ios-cmake
googletestBSD-3-Clausehttps://github.com/google/googletest
google-toolbox-for-macApache-2.0https://github.com/google/google-toolbox-for-mac

Package managers also fetch some third-party software. Checkbuild.gradle andpackage.json.


[8]ページ先頭

©2009-2025 Movatter.jp