Comments (28)
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.
That's Sonds interesting,dude. Go ahead. 💯
from cello.
It's a shame that Symfony is already taken...
from cello.
Also Sinatra would have been a nice match.
from cello.
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.
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.
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.
@radare Wouldn't that require Cello to compile on TCC? AFAIK it doesn't.
from cello.
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.
After finding this, I've lost my motivation of creating it.
Maybe we need to close #45 first?
from cello.
What needs to be done for this to happen? I've been meaning to find a C side project.
from cello.
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.
People are writing about this: https://medium.com/code-adventures/ff723209f8f5
from cello.
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.
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.
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.
Fine by me, some webserver examples (also using http-parser
):
https://github.com/philips/libuv-webserver
https://github.com/springmeyer/libuv-webserver
from cello.
👍
from cello.
C REPL
- http://root.cern.ch/drupal/content/cint
- http://code.google.com/p/ccons/
- https://github.com/martine/c-repl
C Package Managers
- https://github.com/clibs
- http://ooc-lang.org/docs/tools/sam/
- https://www.npmjs.org/package/c-pm
- https://github.com/ryppl
@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.
@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.
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.
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.
@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.
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.
@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.
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.
it would be fantastic if building web app over C in high level syntax
from cello.
Is it possible to use Kore + Cello? If so, maybe we have our web framework already.
from cello.
Related Issues (20)
- Unexpected GC behavior with Tuple HOT 5
- Make install should use "install --mode=..." instead of "cp" HOT 2
- make install doesn't install the dynamic library
- How do one "extends" a type? HOT 3
- error: cast to pointer from integer of different size HOT 2
- pop semantics? HOT 3
- Append Char HOT 2
- MacOS: __dyld section not supported HOT 1
- Abstracting a scripting language's internal value types using Cello HOT 1
- Feature request : Lua->Cello transpiler
- Missing Git tag for 2.1.0 release HOT 2
- Can I make a wrapper for other languages?
- Add vcpkg installation instructions
- Question about Array
- Doesn't work with Emscripten HOT 2
- is the project alive? can I use it in my product? who develops forks based on Cello? HOT 3
- Moving objects between threads HOT 1
- Failed to compile on GCC 8.1.0
- Can you do a comparison to Nim and Nelua?
- new release? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cello.