Open orangeduck opened 11 years ago
That's Sonds interesting,dude. Go ahead. :100:
While you're at it. A REPL would be nice.
Anyhow, I just wanted to say I think it's awesome what you did with libCello. Great job!
P.S.: I root for "Cello on Chords"
It's a shame that Symfony is already taken...
Seriously though, a web framework would be neat. If it would be possible to write a nice Cello-feeling layer above libevent's http functionality, you'd be halfway there.
You can sort of use gdb as a poor man's repl:
https://www.hackerschool.com/blog/5-learning-c-with-gdb
Yeah I think a web framework would be a good challenge to see how up-to-it cello really is for higher level programs. Might take a shot at it if I ever get some more free time - but anyone else is more than welcome :)
@To1ne Cheers! +1 for Cello on Chords
Or just libtcc
On 07/23/13 12:58, Daniel Holden wrote:
You can sort of use gdb as a poor man's repl:
https://www.hackerschool.com/blog/5-learning-c-with-gdb
Yeah I think a web framework would be a good challenge to see how up-to-it cello really is for higher level programs. Might take a shot at it if I ever get some more free time - but anyone else is more than welcome :)
@To1ne https://github.com/To1ne Cheers! +1 for Cello on Chords
— Reply to this email directly or view it on GitHub https://github.com/orangeduck/libCello/issues/27#issuecomment-21406557.
@radare Wouldn't that require Cello to compile on TCC? AFAIK it doesn't.
This idea keeps wandering in my head...
How hard would it be to make a Sinatra-like framework? I like the idea to use libevent. We can start from this: http://www.impera-online.de/index.php/2012/07/creating-a-multithreaded-http-server-using-libevent/
Maybe we can call it "Stradivarius" or if you like a shorter name "Strad".
After finding this, I've lost my motivation of creating it. Maybe we need to close #45 first?
What needs to be done for this to happen? I've been meaning to find a C side project.
I'm not a web developer so I know the exact details. If anyone has more insight into this issue I'd love to know more!
Probably wrapping libevent
in a Cello like layer might be a good start. And after that probably looking into some routing stuff. Looking at the C code for Bogart might be a nice start to get something up and running quickly.
I'm currently working on a parser combinator library in vanilla C which I could look at porting to Cello if we need a proper regex engine and/or JSON support.
After that I suspect there is lots of string manipulation stuff to do as well as some database stuff (redis is probably a very easy choice) and template stuff.
People are writing about this: https://medium.com/code-adventures/ff723209f8f5
I was able to run libCello using GWAN webserver ... https://gist.github.com/solisoft/79ec698238a4cf3805c2 What about a regexp tool ? It will be awesome !
That's awesome! I do have some vague plans for regex but a proper regex engine isn't that trivial to implement. Like I mentioned above I have a vanilla C parser combinator library I could port or an existing regex library for C could be wrapped in a Cello-like interface.
For now you can probably achieve 90% of what is required as far as matching goes using the scan
functions (which work like sscanf but with cello types too).
Probably wrapping libevent in a Cello like layer might be a good start.
libuv would probably be a better match. It was written to replace libev/libevent in node.js and it has a LOT of really useful stuff including threading, file and network I/O, timers/time, processes, etc.
http://nikhilm.github.io/uvbook/ <- some pretty good examples https://github.com/joyent/libuv/blob/master/include/uv.h <- main header, which you really want to go on
Fine by me, some webserver examples (also using http-parser
):
https://github.com/philips/libuv-webserver
https://github.com/springmeyer/libuv-webserver
:+1:
@solisoft Cool! What project were you working on with g-wan? I love experimenting and benchmarking with different webservers and the kernel. Update: found it out: it's http://solicms.com/ awesome project btw.! Always wanted to make something like that too!
The only and the most required thing for C is (formally) safe string manipulation libraries. Everything else already exists and is easy to find, or easier to solve. This is (imho) a hard problem, which people always nag about, when they try to bash C for the Web. I don't see a reason why C is bad for the web, NOT AT ALL (given the right 'framework' in which one securely operates).
I don't think that libuv is better, but it maybe is just taste. Better means more efficient to me, which always needs to proven in a reproducible manner, to be considered and called so.
this thread gives me hope =)
@X4 yes it's solicms.com but it's still a Ruby code ... didn't get the time for a C conversion. I have another projects like hermes.io which will be a private / secure / spam free messaging system. The goal is to replace actual mail system (quite ambitious though) ;)
I looked at Cello a while ago and it looks great. If you want we can start testing an optional Cello mode when writting web services when using Duda I/O. So people may use our direct API or some Cello helpers.
What do you think ?
Also have you seen dyad? I saw it on Hacker News recently and that might be helpful.
On Thu, Aug 21, 2014 at 10:42 AM, Eduardo Silva notifications@github.com wrote:
I looked at Cello a while ago and it looks great. If you want we can start testing an optional Cello mode when writting web services when using Duda I/O http://duda.io. So people may use our direct API or some Cello helpers.
What do you think ?
— Reply to this email directly or view it on GitHub https://github.com/orangeduck/libCello/issues/27#issuecomment-52955542.
@edsiper That sounds awesome. I'd love to give that a play with! Tell me if there is anything I can help with.
@tekknolagi dyad looked interesting, although there are probably some more mature solutions such as libuv.
I was planning on wrapping my other library mpc in a Cello interface at some point so that Cello could have some basic regex support. Then it would allow for pattern matching in routing (and at that point you are half way there). I really need to get around to that...
Oh, I didn't know about libuv. Neat!
On Thu, Aug 21, 2014 at 10:56 AM, Daniel Holden notifications@github.com wrote:
@edsiper https://github.com/edsiper That sounds awesome. I'd love to give that a play with! Tell me if there is anything I can help with.
@tekknolagi https://github.com/tekknolagi dyad looked interesting, although there are probably some more mature solutions such as libuv.
I was planning on wrapping my other library mpc https://github.com/orangeduck/mpc in a Cello interface at some point so that Cello could have some basic regex support. Then it would allow for pattern matching in routing (and at that point you are half way there). I really need to get around to that...
— Reply to this email directly or view it on GitHub https://github.com/orangeduck/libCello/issues/27#issuecomment-52957364.
@orangeduck the first think is that you get started with the hello_world example, easy steps:
$ sudo pip install dudac
$ dudac -s
$ git clone https://github.com/monkey/duda-examples
$ dudac -w duda-examples/001_hello_world -p 8080
then you can reach the service with:
$ curl -i http://localhost:8080/hello/
then play with Cello and main.c :)
I'm a webdeveloper, if someone are testing httpd on Cello, please, tell me. Because i want to try routing+http using Cello.
Something like:
http_get("/") {
response.write(200, "hello world");
};
http_serve(":8080");
it would be fantastic if building web app over C in high level syntax
Cello requires a web framework to become popular.
Suggestions:
( No I'm not totally serious :P )