I'm trying to find a good library to deal with large number of concurrent connections and I came across Libevent and Libev. But neither of them has built-in ssl/https support. I'm wondering if I'm missing something here on how these libraries should be used because ssl/https is so commonly used yet it's not in these two popular tools.
I believe libevent2 has support for SSL.
http://levent.git.sourceforge.net/git/gitweb.cgi?p=levent/levent;a=blob;f=ChangeLog;hb=fe008ed656766266b93cdf2083f5b8bc50e6aad3
Related
Can the v8's code generating backend be used in a third party programming language, in a way similar to LLVM is used? Is it "general enough" for that, can you even separate the backend from the v8?
I found this, but it does not help to answer my question:
https://github.com/v8/v8/wiki/TurboFan
V8 developer here. No, V8's compiler is not designed to be used as a stand-alone compiler. It is closely intertwined with the rest of the V8 runtime system, and very much tailored towards JavaScript.
Of course, many of the concepts in Turbofan are applicable to other compilers/languages too. If you have a couple of person-years of engineering time available, you could totally extend (or fork and adapt) it to support one or more other languages. But that would be a lot of work.
Google state that:
Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data
I searched for an explicit list of platforms and/or operating systems officially supported by Protocol Buffers but I couldn't find it. Ironically the closest thing I found was the following information in the Wikipedia page:
Operating system: Any
Platforms: Cross-platform
Is it safe to say that Protocol Buffers support any platform/OS?
Operating system is going to be any mainstream OS. If you're running something esoteric, you might get the same problems that you get with anything else.
Platform is similar; google offer support for a range of platforms, and a much wider list is provided by community owned projects. A list is here: https://github.com/google/protobuf/blob/master/docs/third_party.md
Ultimately, the wire specification is documented and doesn't depend on OS or platform, so worst case if you're using a custom language on a custom OS, then you could still implement your own decoder as long as that language has some mechanism to talk arbitrary binary data or can interop to one of the other prebuilt libraries.
I'm new to programming Linux kernel modules, and many getting started guides on the topic include little information about how to build a kernel module which will run on many versions and CPU platforms of Linux. Most of the guides I've seen simply state things like, "Linux doesn't ensure any ABI/API compatibility between versions." However, other OSes do provide these guarantees for major versions, and the guides are mostly targeting 2.7 (which is a bit old now).
I was wondering if there is any kind of ABI/API compatibility now, or if there are any standard ways to deal with versioning other than isolating the kernel-dependent bits of my code into files with a ton of preprocessor directives. (Also, are there any standard preprocessor symbols I should be using in the second case?)
There isn't a stable ABI for the kernel and most likely never will be because it'd make Linux suck. The reasons for not having one are all pretty much documented in that link.
The best way to deal with this is to get your driver merged upstream where it'll be maintained by other kernel developers.
As to being cross-platform, that pretty much comes free with the Linux kernel as long as you only use the standard, platform-independent functions provided in the API.
Linux, the ying and the yang. Tangrs answer is good; it answers your question. However, there is the linux compat projects. See the backports wiki. Basically, there are libraries that provide shim functionality for newer Linux ABI's which you can use to link your code. The KERNEL_VERSION macro that Eugene notes is inspected in a compat.h, and appropriate compat-2.6.38.h, etc are included where each version has either macros and/or library functions to provide a forward API.
This lets the Linux Wifi group write code for the bleeding edge kernel, while still making it possible to compile on older kernel versions.
I guess this answers the question,
if there are any standard ways to deal with versioning?
The compat library is not a panacea, but at least it is there and under development.
Open source - There are many mutations. They all have a different plan.
is it possible to write a program that uploads files to a FTP by using mono development tools and a monomac project? is FTP upload supported by the framework or will i have to invent something painfully complex, way beyond my skills?
thanks
Lots of choice.
Mono itself (it's framework) includes WebClient (like Lex commented) and FtpWebRequest (and FtpWebResponse). One known limitation is that is does not support FTP+SSL (ftps://). That's likely the easiest option as it does not require any additional dependency and you'll find/google a lot of code samples using those classes.
If that does not fit your need (e.g. SSL support) then there are also several .NET libraries, commercial or open source, support FTP (and other protocols) included (or not) in the base class library.
MonoMac offers bindings to OSX API, including a lot of networking classes - but I've never seen (nor really looked) something for FTP upload (but downloads can be done based on the URL).
Finally you can create (or find) .NET bindings to Objective-C libraries that supports FTP. See this related question for some links on Objective-C libraries (that you could bind).
We are building a product, which requires modbus communication (both rs-485 and TCP/IP). The code has to run on an embedded device which has Linux running on it. We have following criteria for the selecting the library that we would be using.
It has to be opensource, since we are opensource geeks.
We would give this product to our users and what their application would be we are not aware, hence it has to complete implementation of the modbus protocol.
Wide user base: What we believe is that greater the users of the code, more the stability of the code.
I came across two such libraries:
http://www.freemodbus.org
and
libmodbus
Are there any more modbus libraries. Please suggest with pros and cons
I'd suggest libmodbus, it works well and is cross platform.
http://www.libmodbus.org
I am just starting to explore these options as well. My priority is on ease of use which has led me to RModBus since it was the only one that I was able to get immediate results with. However, there is also a Python library, Pymodbus, that appears to be quite complete in implementation.
I'm sorry, I just figured out that GCC is a compiler; my answer is way off topic.
Again, I was looking for a scripting language that my noob self could be more comfortable in. It really came down to a question of language rather than the library itself. Oh, I am only using the TCP/IP stack at this time, which somewhat simplifies it as well.