| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
http server base on lua + libuv
参考:
实现目标:通过对coroutine包装实现同步代码编写异步程序,lua代码实现[形式同步],c代码实现[实质异步]。
开发模式:需求驱动
##第一阶段工作:http1.1 预计三个月完成
###模块 ####system
system.cpuinfo()
ret = {
{
model = '{string} Intel(R) Core(TM) i7 CPU860 @2.80GHz',
speed = '{integer} [MHz]',
times = {
user = '{integer}',
nice = '{integer}',
sys = '{integer}',
idle = '{integer}',
irq = '{integer}'
}
},
{
model = '{string}',
speed = '{integer}',
times = {
user = '{integer}',
nice = '{integer}',
sys = '{integer}',
idle = '{integer}',
irq = '{integer}'
}
}
}system.meminfo()
ret = {
total = '{integer} [bytes]',
free = '{integer} [bytes]'
}system.loadavg()
system.hrtime()
system.uptime()
####process
process.fork(options)
local options = {
file = '{string} the file to run in the process',
args = '{table[array(string)]} string arguments',
uid = '{integer} the user identity of the process',
gid = '{integer} the group identity of the process',
forever = '{boolean} if true, the process will restart when it dies',
cpu = '{integer} set the affinity of CPU and process',
detached = '{boolean} if true, the child process will be made the leader of a new process group. This makes it possible for the child to continue running after the parent exits'
}process.exec(command)
process.cwd()
process.exit([signal])
process.abort()
process.kill(pid[, signal])
process.uptime()
####dns dns.resolve4(hostname)
dns.resolve6(hostname)
####tcp tcp.createServer(port, onconnect[, options])
local function onconnect(socket, server)
end local options = {
family = '{integer|default: 4}',
host = '{string|default: 0.0.0.0(::)}',
timeout = '{integer|default: 0}',
tcp_nodelay = '{boolean|default: true}',
tcp_keepalive = '{boolean|default: true}',
tcp_keepidle = '{integer|default: 0}',
tcp_backlog = 'integer|default: 511}',
tcp_reuseport = '{boolean|default: false}',
read_buffer_size = '{integer|default: 16}',
maxconnections = '{integer|default: 65535}'
}tcp.connect(port[, host, options])
local options = {
family = '{integer|default: 4}',
timeout = '{integer|default: 0}',
tcp_nodelay = '{boolean|default: true}',
tcp_keepalive = '{boolean|default: true}',
tcp_keepidle = '{integer|default: 0}',
read_buffer_size = '{integer|default: 16}'
} error = {
code = '[integer] error code',
name = '[string] error name',
message = '[string] error message'
}tcp.isIP(address)
server:address()
address = {
family = '{integer}',
port = '{integer}',
address = '{string}'
}server:connections()
server:close()
socket:read(n)
socket:readline()
socket:write(data)
socket:localAddress()
socket:remoteAddress()
socket:setTimeout(timeout)
socket:setNodelay([enable])
socket:setKeepalive([enable][, idle])
socket:end()
####http 进行中
####websocket
以下模块采用迭代开发模式,逐步完善
####log
####https
####redis
####mysql
####mongodb
####sequoiadb
##第二阶段工作:测试 预计两个月完成
####单元测试
####性能测试
##第三阶段工作:实例 结合实际情况开展项目,通过项目开发过程中出现的问题,形成需求,驱动links开发
####社区
####聊天
####游戏
##第四阶段工作:http2.0
####spdy3.0 看http2.0发展情况,如果http2.0推广的迅速就跳过这个阶段
####http2.0
| Back | FazBrowse Home | New Git URL |