Skip to content

ELMERzark/chuck

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#chuck

  • first, Chuck is my son's name.

  • second, Chuck is a high perference,asynchronous and easily use C/Lua network library under Linux/Freebsd.

#build

download and make lua 5.3

static library for c:

make libchuck

dynamic library for lua:

make chuck.so

c example:

make samples

#examples

echo server:

lua src/samples/lua/echoserver.lua

now try telnet to 127.0.0.1 8010.

asynchronous redis client:

start redis server on 127.0.0.1 6379

lua src/samples/lua/redis_stress.lua 	

httpserver:

local Http   = require("distri.http.http")
local Distri = require("distri.distri")
local Chuck  = require("chuck")

local server = Http.Server(function (req,res)
	res:WriteHead(200,"OK", {"Content-Type: text/plain"})
  	res:End("hello world!")
end):Listen("0.0.0.0",8010)

if server then
	Distri.Signal(Chuck.signal.SIGINT,Distri.Stop)
	Distri.Run()
end

httpclient:

local Http   = require("distri.http.http")
local Distri = require("distri.distri")
local Chuck  = require("chuck")

local client    = Http.Client("www.baidu.com")
if client then
	local request = Http.Request("/")
	client:Get(request,function (response)
		for k,v in pairs(response:Headers()) do
			print(v[1] .. " : " .. v[2])
		end
		print(response:Content())
	end)
	Distri.Signal(Chuck.signal.SIGINT,Distri.Stop)
	Distri.Run()	
end

more detail

#customer

About

high performance and easily use asynchronous network library for C/Lua

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 88.2%
  • Lua 8.6%
  • Makefile 1.7%
  • C++ 1.5%