Skip to content

mhmnemati/kstd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kstd (KoLiBer Standard Library)

KSTD is cross platform library for creating high performance C application that can run on multiple OS'es, without any library dependency. KSTD only depends on OS system calls. It's fully modular application, it source code breaked into two level codes, high level codes (depends on low level codes) and low level codes (depends on OS syscalls). KSTD was developed over Object Oriented paradigm (OOC) and it is easily expandable.

Modules

KSTD is a modular library, and you can use these modules

  1. dsa: Abstract Data Types implementation
    1. high:
      1. ArrayList
      2. Dequeue
      3. LinkedList
      4. Queue
      5. Stack
    2. low:
      1. String
  2. ipc: Inter Process Communication implementation ( anonymous or named )
    1. low:
      1. Barrier
      2. ErrorCheckLock
      3. Latch
      4. Message
      5. Monitor
      6. MutexLock
      7. ReadWriteLock
      8. ReentrantLock
      9. Semaphore
      10. Share
  3. kstd: KSTD modules initializer
  4. local: Date and Time implementation
    1. low:
      1. Date
      2. Time
  5. memory: Heap and Type system implementation
    1. low:
      1. Heap
      2. Type
  6. processor: Thread and Process implementation
    1. high
      1. ThreadPool
      2. ProcessPool
    2. low
      1. Thread
      2. Process

Building

You can compile KSTD in two modes:

  1. debug (testing)
  2. release

And also you can set link type:

  1. static
  2. dynamic

So let's see the building command:

git clone https://github.com/koliberr136a1/kstd.git

cd sources/c
mkdir build
cd build

cmake -DBUILD=debug ..
make -j4

Testing

asciicast

Linking

After building library, you can link .so or .a or .dll file to your application and enjoy KSTD :)