Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Twisted | 5,006 | 9,695 | 551 | 2 days ago | 90 | April 11, 2022 | 2,739 | other | Python | |
Event-driven networking engine written in Python. | ||||||||||
Message Io | 864 | 4 | 9 days ago | 44 | June 07, 2022 | 10 | apache-2.0 | Rust | ||
Fast and easy-to-use event-driven network library. | ||||||||||
Salt Sproxy | 102 | 2 | 5 months ago | 29 | July 01, 2021 | 22 | apache-2.0 | Python | ||
Salt plugin to automate the management and configuration of (network) devices at scale, without running (Proxy) Minions. | ||||||||||
Collie | 60 | 14 | 3 | 5 years ago | 80 | August 30, 2018 | 3 | D | ||
An asynchronous event-driven network framework( port netty ) written in D. | ||||||||||
Jabs | 45 | 7 months ago | mit | Java | ||||||
a blockchain network simulator aimed at researching consensus algorithms for performance and security | ||||||||||
Netpoll | 42 | 3 | a month ago | 17 | October 30, 2021 | 2 | mit | Go | ||
Package netpoll implements a network poller based on epoll/kqueue. | ||||||||||
Ev | 17 | 2 months ago | bsd-2-clause | C | ||||||
Lightweight event-loop library based on multiplexing IO | ||||||||||
Vaser | 16 | 5 years ago | C# | |||||||
Vaser is a powerful high performance event based network engine library for C# .Net. It’s possible to start multiple servers in one program and use the same network code for all servers. In the network communication are all strings are omitted, instead it is based on a unique binary identifier, which the CPU and memory relieves massively. | ||||||||||
Subevent | 10 | 4 years ago | mit | C++ | ||||||
C++ Event Driven and Network Application Library (Header only) | ||||||||||
Cio | 8 | 2 days ago | 11 | other | C | |||||
An ANSI C Conformant I/O Library. |
C++ Event Driven and Network Application Library
-std=c++11
(or later option)-pthread
or -lpthread
-lssl
and -lcrypt
(for OpenSSL)#include <subevent/subevent.hpp>
SEV_USING_NS
//---------------------------------------------------------------------------//
// Main
//---------------------------------------------------------------------------//
SEV_IMPL_GLOBAL
int main(int, char**)
{
NetApplication app;
// your code here.
return app.run();
}
#include <subevent/subevent.hpp>
SEV_USING_NS
//---------------------------------------------------------------------------//
// MyApp
//---------------------------------------------------------------------------//
class MyApp : public NetApplication
{
protected:
bool onInit() override
{
NetApplication::onInit();
// Your initialization code here.
return true;
}
void onExit() override
{
// Your deinitialization code here.
NetApplication::onExit();
}
};
//---------------------------------------------------------------------------//
// Main
//---------------------------------------------------------------------------//
SEV_IMPL_GLOBAL
int main(int, char**)
{
MyApp app;
return app.run();
}
// call "void NetApplication::stop()"
stop();
class MyThread : public NetThread
{
protected:
bool onInit() override
{
NetThread::onInit();
// Your initialization code here.
return true;
}
void onExit() override
{
// Your deinitialization code here.
NetThread::onExit();
}
};
// Start
MyThread* myThread = new MyThread();
myThread->start();
// End
myThread->stop();
myThread->wait();
delete myThread;
// Declare MyEvent
// <Unique Id, ParamType1, ParamType2, ...>
typedef UserEvent<1, int, std::string> MyEvent;
// Send (to another thread or self)
int param1 = 20;
std::string param2 = "data";
myThread->post(new MyEvent(param1, param2));
// Receive
setUserEventHandler<MyEvent>([&](const MyEvent* myEvent) {
int param1;
std::string param2;
myEvent->getParams(param1, param2);
});
myThread->post([&]() {
// Executed on myThread.
});
Timer* timer = new Timer();
uint32_t msec = 60000;
bool repeat = false;
// start
timer->start(msec, repeat, [&](Timer*) {
// Called from the same thread when time out.
});
$ cmake .
$ make