clusterO / xruntime

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xruntime

The first goal of this project is to implement a web server

The major parts of this section are:

  • An http request handler
  • An http response builder
  • A caching mechanism (LRU)
  • [_] Concurency manager
  • [_] See code comments

Compile using GCC

cd http
gcc server.c llist.c hashtable.c cache.c file.c mime.c net.c helpers/request.c -o server -w

Test HTTP server

Post data:

Resources:

The second phase is to add a dependency manager to the system

  • Init & configure
  • Install, Update and upgrade
  • Build process
  • DepSolver (SAT)
  • [_] CI/CD

Design principles

  • The system must support all different ways of using dependencies (language specific source colators, language specific package manager, third party managers, vendoring, system dependencies)
  • The dependency system must prevent people from getting the same dependency via multiple ways
  • Maintenance costs should be borne mostly by those who get the benefit
  • A project must support being either a dependency provider or consumer transparently
  • Build definitions must not dictate how or from where a dependency should be obtained
  • Subprojects must be configured and build in solated sandboxes with narrow and explicit interfaces between them
  • Try to support for simple cases of mixing build system (general case challenge)
  • Provide a centralised dependency downloader, but do not mandate its use

Compile using GCC

cd cpm
gcc cpm.c libs/asprintf.c libs/case.c libs/commander.c libs/console-colors.c libs/copy.c libs/debug.c libs/fs.c libs/hash.c libs/http-get.c libs/list.c libs/list_iterator.c libs/list_node.c libs/mkdirp.c libs/parse-repo.c libs/parson.c libs/path-join.c libs/path-normalize.c libs/rimraf.c libs/strdup.c libs/str-ends-with.c libs/str-flatten.c libs/str-starts-with.c libs/substr.c libs/trim.c libs/which.c libs/tempdir.c libs/wiki-registry.c libs/wildcardcmp.c common/cache.c common/package.c gumbo-parser/attribute.c gumbo-parser/char_ref.c gumbo-parser/error.c gumbo-parser/get-element-by-id.c gumbo-parser/get-elements-by-tag-name.c gumbo-parser/gumbo-text-content.c gumbo-parser/parser.c gumbo-parser/string_buffer.c gumbo-parser/string_piece.c gumbo-parser/tag.c gumbo-parser/tokenizer.c gumbo-parser/utf8.c gumbo-parser/util.c gumbo-parser/vector.c -lcurl -lpthread -o cpm -w

Test CPM (C package manager)

  • cpm -V
  • cpm help

The third phase is to incorporate object oriented and functional programming styles

  • OOC OOC
  • [_] FC Functional C
  • [_] Fix Wall Wextra
  • [_] Functional tests
  • [_] Refactor
  • [_] What's next

The fourth phase is V8/TSC Binding

About


Languages

Language:C 72.0%Language:Assembly 12.6%Language:Shell 5.7%Language:Makefile 4.5%Language:Roff 2.6%Language:M4 1.4%Language:HTML 1.3%