Difference between libcurl and libsoup [closed] - c

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
What are the advantages and disadvantages of using libcurl and libsoup?
Which one is better to use for a HTTP operation where I have to send request to a server to get a response, and has a quick reaction time?

Libsoup is coming along, but libcurl has much better support and stability. Lib soup devs readily admit that you should probably be using libcurl.
The 4th item is especially important because even on Linux KDE and XCF users will install gnome-related libs, but it isn't nice to force them to use the gnome libraries when a platform independent option is available.
libcurl is (far) more portable
libsoup lacks support for: NTLM for proxies (Proxy-Authentication:), GSS, trailers in chunked responses, OpenSSL
libsoup offers server-side support
libsoup is using GNOME-related libs, making it a less convenient choice for non-GNOME environments.
"I found that libsoup is far slower than libcurl. It uses at least 4x the amount of CPU to transfer a high-bitrate datastream over HTTP. I attribute this to the over-reliance on heavy-weight glib/gobject constructs. Man, that stuff is slow and a pain to use!" - Matt Gruenke

I was looking at libsoup to implement the server side of an API on a hobby project (I was making my own router).
By the time I got through satisfying the GNOME dependencies, the simplicity of the callback based server side code didn't seem as attractive as it once did. The interface is nice enough, see soup_server_add_handler().
If you write GNOME applications (thus can already count on the GNOME dependencies being there), it's okay (it felt sluggish, to me).
If you are just writing client code, or anything that has to work in the absence of GNOME, stick to curl.

http://curl.haxx.se/libcurl/libsoup.html
Your probably better off sticking with libcurl if you want portability and stability.

Using libsoup caused an increase of almost 11MB in my rootfs, where libcurl only added around 1MB.
This is important in embedded systems with limited storage resources.

Related

Working graph server setup for use with Python3 [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I'm solving a problem that seems most appropriately handled by a graph database, so I wanted to get a graph database server up and running, and go from there. I'm a Python developer, so I was trying to get something running with the bulbs library, which seems mature and effective, based on the documentation.
Unfortunately, I haven't been able to find any monolithic guide that covers everything between bulbs and an actual graph database server, and my attempts to cobble together working versions have been hampered by a number of compatibility problems.
I feel like I might be missing something intrinsic to the design of these systems. I'm used to postgresql, MariaDB, and other systems which are a pretty simple two-layer model, bridged by a standard API. It seems like the Apache Tinkerpop stack should be what I want, but Rexster seems like it's a server, but not a storage backend, so I still need one of those? I'm a little confused, because Neo4j and Titan seem like they're also servers, in addition to storage backends, so I don't know why Rexster is necessary. Right now, I'm trying to get Neo4j to work with bulbs, but the Gremlin plugin is missing... I've spent more than a day trying to piece this software stack together, and I'm getting really close to just giving up and building a million mapping tables in an ORM.
Is there a monolithic installation guide that I can follow somewhere, or has anyone had experience getting this working in a sane amount of time? I can use any solution deployable on Fedora, Debian, or OpenBSD.
Your question is too broad to provide a good answer. Briefly, I will say that you are not going down a good path. Bulbs is no longer developed. Rexster is TinkerPop 2.x which is a line of code that is no longer maintained. Please see the TinkerPop web site which as the full listing of current python related libraries for 3.x. However, before you even do that or worry about Titan or Neo4j, you should focus your time on learning the TinkerPop stack itself. Read the Getting Started tutorial. Get comfortable with the Gremlin Console. Play with GremlinBin a bit. Then get into the details of the reference documentation. If you start more slowly, you will likely have more success.

What protocols are REQUIRED for calendar servers [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I'm building a calendar server in .Net. I want the first version of the system to be functional and interoperable for any calendar client. The system is for my college and is my thesis, that's why I don't have enough time to implement all the protocols that these system should implement.
What protocols are REQUIRED in a calendar system server in order to be functional for the clients? Till now it implements RFC 5545 (iCalendar), I'm finishing the RFC 4791 (CalDAV) and some of the extension of WebDAV, after this I'm going to implement the RFC 3744 (ACL).
Should I implement the RFC 6638 (Scheduling Extensions to CalDAV), RFC 3253 (Versioning Extensions to WebDAV) or any other?
In the future I want to implement all these protocols but I have no time now.
Despite the "close votes", I think this is a valid question. There's a lot of standards out there, and a lot of dependencies. And you certainly don't need everything.
The truth is that you need only a subset, and almost no one implements the entire spec.
What's required for you depends on which clients and which features you want to support. So lets say that you want to support iCal, and Thunderbird.
Then at the very least you need large chunks of CalDAV (RFC4791). You don't need every REPORT, but at least calendar-multiget and calendar-query. The freebusy stuff is not used. But for the calendar-query report, there's a small subset of actual queries that clients do.
You need big parts of RFC3744. You can skip most of the REPORTs, but you need a principals system and access-control related WebDAV properties. You also don't need the ACL method. WebDAV ACL is primarily used for principals and reporting access information (but not altering it).
Nobody uses RFC3253 (versioning).
You probably need current-user-principal-URL (rfc5397).
You don't need scheduling (RFC6638). Without scheduling, clients will sync just fine.
Lastly, it's really useful to have support for WebDAV Sync (rfc6578). Clients should be able to live without it, but in reality they tend to misbehave. Without support for that spec, you can fall back on the proprietary ctag, which is widely supported. It's simpler, does the job, but is non-standard.
I would consider this answer a non-exhaustive list though. It's an overview to help you get started. If you have more specific questions about the specs I mentioned, comment here, I'm happy to further expand on this answer.

Looking for web service.solution for embedded Linux/C platform [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I hope I can expose web sercices APIs from my embedded Linux device. By doing that I can then write standalone Windows application that involves these APIs to get/put data from/to my device. Since the client GUI for some reason has to be written in Gtk, that means I plan to use c for the client side, no Java here. On the server side, since it's an embedded Linux and all my business logics already implemented in a lot of c code, so I also hope that I can use c to write any web servive code on the server side.
I heard there exists Restful and SOAP, I searched google and grabed some ideas about them. I prefer to be simple but not sure whether Restful good enough to suit my task (remember I am not going to create web clients and I have only application clients). Do you have a suggestion on the topic?
And, even I choosed the style of web servive (Rest or SOAP), I think I still need a framework for my platform. The requirements of having to use C language seems limited the list to two options, the Apache axis2/c and gSOAP. Does them can be cross compiled to ARM Linux? And which one is more suitable? Any suggestion from you will be highly appreciated!
-woody
You could use some HTTP server library in C, like e.g. libonion, in your embedded Linux device. It probably is the best solution (but you should be sure that your application is reliable enough to run continuously for weeks without crashing).
You could also run some light web server (e.g. lighttpd) and have your program be a FastCGI or CGI application. This approach probably makes sense only if your device needs to also serve web pages for some other purposes.
We have no exact idea about your device and your application (and the web services you want).

Which programming langage should I use to process images online? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'd like to learn to create a website with processing on the client side.
Here are my goals:
- The program would look like something like Picasa or Lightroom. It means processing lot of pictures in a row
- I'd like the client to download the "image processor" to avoid uploading plenty of pictures on the server (which is slow and frustrating IMHO).
- I also have in mind to create a mobile version of the website
I don't know a lot about internet programming languages but here are my thoughts at the moment:
Flash: I think it would do, but I don't like it (not portable enough from what I read)
Java: This is the one I am thinking of at the moment. But I don't like the idea of asking users to download a third party if they don't have it.
HTML5 + Javascript: I don't what it means regarding Javascript capabilities. Would it be a pain?
Python, Ruby on Rail, C#: I don't know what it means to use them for web programming. I already used Python put as scripting language.
There are for sure other technologies that I am not aware of. Feel free to propose anything else that is mainstream enough to get good support on the internet :)!
Thank you for your help!
I hope you won't think it is a duplicate. I made some search and found this for ex:
Client-side image processing
=> But they already have their core processing since I have nothing!
Modern web browsers support html5 & javascript out of the box - older ones at least have support for javascript unless support for something truely ancient is desired - so considering the compatibility it should be the best one of these alternatives.
Flash needs a flash-plugin and a Java applet needs a jre-plugin.
Have never seen the 4th choice in client-based web-applications really, so not sure about how that would be done.

How to incorporate WebSockets into a Cocoa application [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I am developing a Cocoa application which involves a chat element. One approach I've considered is using Websockets to handle client-server communication. This would be particularly desirable because chats will also be displayed on a website, and using Websockets could make the implementation very simple.
So: would it be possible to use a WebView element, and use Websockets within it? (I know Safari doesn't support Websockets yet, so I imagine this is not possible?)
Failing that, are there any Websocket client libraries for C, Objective C, or any other language I could successfully embed within my application?
Suggestions welcomed.
The only objective-c WebSocket library that supports the latest standard, RFC 6455 (at the time of writing this post) is SocketRocket (disclaimer: I'm author of it).
Both Unitt's and Zimt's client implementations are using deprecated protocols and don't seem to be maintained.
Here is an implementation of websockets for objective-c
http://github.com/esad/zimt
zimt doesn't seem to work on iOS4 - no changes were made since april 2nd 2010..
There is libwebsocket provided by warmcat as an answer to my question of a C++ Websocket library.
It supports the most recent -04 and -05 standard recommendation and also provides encryption through SSL.
Additionally it should work on iOS devices.
You can use it if you don't mind using C code or you could write an Objective-C wrapper for the library.
Couldn't get zimt or UnitT to work in my project, so i wrote this quick wrapper around uiwebview to use the native WebSockets supported included in iOS 4.2.
https://github.com/zootreeves/iOS-WebSockets/
Performance is sufficient for small messages.

Resources