Giter VIP home page Giter VIP logo

kit's Introduction

kit

Really cool C++ stuff, including modern async

Open-source under MIT License

Copyright (c) 2013 Grady O'Connell

async

  • Coroutines w/ YIELD(), AWAIT(), and SLEEP()
  • Channels
  • Async Sockets
  • Event Multiplexer
// MX thread 0, void future
MX[0].coro<void>([]{
    // do async stuff
    auto foo = AWAIT(bar);

    // async sleep yield
    SLEEP(chrono::milliseconds(100));
});
// socket example
MX[0].coro<void>([&]{
    for(;;)
    {
        auto client = make_shared<TCPSocket>(AWAIT(server->accept()));
        
        // coroutine per client
        MX[0].coro<void>([&, client]{
            int client_id = client_ids++;
            LOGf("client %s connected", client_id);
            try{
                for(;;)
                    AWAIT(client->send(AWAIT(client->recv())));
            }catch(const socket_exception& e){
                LOGf("client %s disconnected (%s)", client_id % e.what());
            }
        });
    }
});

reactive

signals, reactive values (signal-paired vars), and lazy evaluation

meta

JSON-compatible serializable meta-objects, property trees

freq

Timelines, alarms, animation/easing, waypoints/keyframes, interpolation

log

Logger w/ error handling, thread-safe scoped indent, silencing, and capturing

math

some math stuff to use with glm

common (kit.h)

Common stuff used by other modules, including:

  • freezable: freeze objects as immutable
  • make_unique: clone of c++14 function
  • dummy_mutex
  • ENTIRE() range macro
  • bit() and mask()
  • null_ptr_exception
  • scoped_unlock
  • thread-safe singleton
  • timed function auto-retry
  • index data structures w/ unused ID approximation

kit's People

Contributors

flipcoder avatar mrgirlyman avatar

Watchers

Baris avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.