Git Product home page Git Product logo

Comments (28)

To1ne avatar To1ne commented on August 17, 2024 1

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"

from cello.

zhcy avatar zhcy commented on August 17, 2024

That's Sonds interesting,dude. Go ahead. 💯

from cello.

wandernauta avatar wandernauta commented on August 17, 2024

It's a shame that Symfony is already taken...

from cello.

To1ne avatar To1ne commented on August 17, 2024

Also Sinatra would have been a nice match.

from cello.

wandernauta avatar wandernauta commented on August 17, 2024

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.

from cello.

orangeduck avatar orangeduck commented on August 17, 2024

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

from cello.

radare avatar radare commented on August 17, 2024

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
#27 (comment).

from cello.

wandernauta avatar wandernauta commented on August 17, 2024

@radare Wouldn't that require Cello to compile on TCC? AFAIK it doesn't.

from cello.

To1ne avatar To1ne commented on August 17, 2024

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".

from cello.

To1ne avatar To1ne commented on August 17, 2024

After finding this, I've lost my motivation of creating it.
Maybe we need to close #45 first?

from cello.

tekknolagi avatar tekknolagi commented on August 17, 2024

What needs to be done for this to happen? I've been meaning to find a C side project.

from cello.

orangeduck avatar orangeduck commented on August 17, 2024

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.

from cello.

To1ne avatar To1ne commented on August 17, 2024

People are writing about this: https://medium.com/code-adventures/ff723209f8f5

from cello.

solisoft avatar solisoft commented on August 17, 2024

I was able to run libCello using GWAN webserver ... https://gist.github.com/solisoft/79ec698238a4cf3805c2
What about a regexp tool ? It will be awesome !

from cello.

orangeduck avatar orangeduck commented on August 17, 2024

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).

from cello.

sakkaku avatar sakkaku commented on August 17, 2024

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

from cello.

To1ne avatar To1ne commented on August 17, 2024

Fine by me, some webserver examples (also using http-parser):
https://github.com/philips/libuv-webserver
https://github.com/springmeyer/libuv-webserver

from cello.

momer avatar momer commented on August 17, 2024

👍

from cello.

X4 avatar X4 commented on August 17, 2024

C REPL

C Package Managers

@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 =)

from cello.

solisoft avatar solisoft commented on August 17, 2024

@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) ;)

from cello.

edsiper avatar edsiper commented on August 17, 2024

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 ?

from cello.

tekknolagi avatar tekknolagi commented on August 17, 2024

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 [email protected]
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
#27 (comment).

from cello.

orangeduck avatar orangeduck commented on August 17, 2024

@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...

from cello.

tekknolagi avatar tekknolagi commented on August 17, 2024

Oh, I didn't know about libuv. Neat!

On Thu, Aug 21, 2014 at 10:56 AM, Daniel Holden [email protected]
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
#27 (comment).

from cello.

edsiper avatar edsiper commented on August 17, 2024

@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 :)

from cello.

xshifty avatar xshifty commented on August 17, 2024

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");

from cello.

nodegin avatar nodegin commented on August 17, 2024

it would be fantastic if building web app over C in high level syntax

from cello.

kerunaru avatar kerunaru commented on August 17, 2024

Is it possible to use Kore + Cello? If so, maybe we have our web framework already.

from cello.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.