C++跨平台开源库 之三

本篇文章主要介绍了”C++开源库集合 “,主要涉及到C++开源库集合 方面的内容,对于C++开源库集合 感兴趣的同学可以参考一下。




mimetic A free/GPL C++ MIME Library

mimetic is a free/GPL Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient. It is based on the C++ standard library and heavily uses templates so require standard compliant C++ compilers. It has been developed using GCC 3.x and tested on most Unixes. mimetic code include some classes that are not strictly needed but are there just to improve performance. Most classes functionalities and behavior will be clear if you ever studied MIME and its components; if you don’t know anything about Internet messages you’ll probably want to read some RFCs to understand the topic and, therefore, easily use the library whose names, whenever possible, overlap terms adopted in the standard RFC documents. At the very least: RFC 822, RFC 2045 and RFC 2046. A more complete list can be found at the Earl Wood’s MIME page.



Crypto++ A Free C++ Library


“…This is a free C++ class library of cryptographic schemes. Crypto++ algorithms include:

Panama, Salsa20, Sosemanuk, AES (Rijndael), RC6, MARS, Twofish, Serpent, CAST-256, IDEA, Triple-DES (DES-EDE2 and DES-EDE3), Camellia, RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Tiger, WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320, RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN, ECDSA, ECNR, ECIES, ECDH, ECMQV, Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH…”



Free Windows Image Processing C++ Library


ImgSource is a free Win32 library that can be used in any 32-bit Windows environment. It provides over 350 image file and image processing functions and is available both as a DLL that can be used from almost any programming environment (including C/C++, VB, C#, MC++, PowerBasic, Delphi, Access, and many more). It is also available in C/C++ static library form for use with C/C++ in VC6 or VS.Net….



All Type Serial Communication Library


commercial collection of serial communication libraries, DLLs, .Net Components, TSRs, drivers, tools, Wireless Bluetooth Serial Adapters, Bluetooth +EDR USB Dongles, and multiport cards. The serial communication library supports Windows Vista, Windows XP, Windows 2003, Windows 2000, Windows CE, Pocket PC, Windows XP Embedded, Windows NT Embedded, Windows 98, MS-DOS, Windows Me, Windows NT, Windows 95, & Windows 3.x. We also provide a complete line of multiport serial communication cards (PCI, ISA, Universal PCI, PCMCIA, Compact Flash, Wireless RS232, USB to serial) for RS232, RS422, and RS485 communications. The standards available includes ISA, PCI, UPCI (Universal PCI/Low Profile), PCMCIA, USB to serial, Wireless RS232, & Compact Flash multiport cards and also RS232, RS485, and RS422 versions of these multiport cards.



Oracle C++ Class Library – OCL


“…OCL stands for Oracle Class Library provides native connectivity to the Oracle database server. OCL uses Oracle Call Interface (OCI) directly. OCI is low-level native application programming interface to access to Oracle. Using OCI in Oracle Class Library allows to create lightweight and fast applications working with Oracle. Oracle Class Library encapsulates OCI calls in high-level classes that allows to hide the complexity of using OCI directly and keep performance and all abilities of native routines. With OCL you can use the power and flexibility of SQL in your application programs without any restrictions. OCL contains classes to control connection, execute SQL statements, store and process result rows of queries and some common classes useful for developing database applications. All classes have intuitive, easy to use interface. OCL is written with ANSI C++ and uses Standard C++ Library only that allows you to port your application easily to another platform. Oracle Class Library provides easiness in using from Pro*C/C++ and power of Oracle Call Interface…”


Also available:



The USB Drivers/Libraries/Framework Collection

  1. libusb is a C library that gives applications easy access to USB devices on many different operating systems. libusb is an open source project, the code is licensed under the​GNU Lesser General Public License version 2.1 or later.

  2. The GPS, USB, Wireless LAN (WLAN), Bluetooth and other drivers, libraries and frameworks by Dr. Till Harbaum for Linux, Windows and MacOS.

  3. The royalty free USB drivers by FTDI which claimed as a specialist in converting peripherals to Universal Serial Bus

  4. This is an open source USB stack for PIC 24F and PIC 18F microcontrollers with USB hardware. It’s licensed Creative Commons Attribution, so you can use pretty much however you want. The stack has these features:

  • USB CDC (virtual serial) support

  • USB HID support

  • Double buffered

  • Interrupt or polling driven

  1. The USB/IP Project aims to develop a general USB device sharing system over IP network. To share USB devices between computers with their full functionality, USB/IP encapsulates “USB I/O messages” into TCP/IP payloads and transmits them between computers. Original USB device drivers and applications can be also used for remote USB devices without any modification of them. A computer can use remote USB devices as if they were directly attached; for example, we can …

  • USB storage devices: fdisk, mkfs, mount/umount, file operations, play a DVD movie and record a DVD-R media.

  • USB keyboards and USB mice: use with linux console and X Window System.

  • USB webcams and USB speakers: view webcam, capture image data and play some music.

  • USB printers, USB scanners, USB serial converters and USB Ethernet interfaces: ok, use fine.

  1. It is currently implemented as Linux device drivers and available under the open source license GPL. Its I/O performance is enough practical in local area network for all types of devices, including isochronous devices, without any modification of Linux-original USB device drivers.

  2. The USB Host Software by Lakeview Research which includes USB classes, host drivers (class, generic, and vendor-specific), Windows tips, Linux, Mac, and other host OSes. Other input/output drivers also available such as serial ports, mass storage, Ethernet, parallel ports etc.

  3. The Open Source Framework for USB Generic HID devices based on the PIC18F and Windows.

  4. USB Implementers Forum, Inc. is a non-profit corporation founded by the group of companies that developed the Universal Serial Bus specification. The USB-IF was formed to provide a support organization and forum for the advancement and adoption of Universal Serial Bus technology. The Forum facilitates the development of high-quality compatible USB peripherals (devices), and promotes the benefits of USB and the quality of products that have passed compliance testing. Some of the many activities that the USB-IF supports include:

  • USB Compliance Workshops

  • USB compliance test development

  • www.usb.org Web site

  • USB pavilions at CES, IDF, WinHEC, and other events

  • Marketing programs and collateral materials, such as retail newsletters, retail salespeople training, store end-caps, etc.

  • USB Developer Conferences

  • and many more…



OpenLDAP Software


OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol. The suite includes:

  • slapd – stand-alone LDAP daemon (server)

  • slurpd – stand-alone LDAP update replication daemon

  • libraries implementing the LDAP protocol, and

  • Utilities, tools, and sample clients.

Also available from the OpenLDAP Project:

  • JLDAP – LDAP Class Libraries for Java contributed by Novell.

  • JDBC-LDAP – Java JDBC – LDAP Bridge Driver contributed by Octet String.



GNU Scientific Library CD

This is precompiled CDs of the GNU Scientific Library for UNIX and Microsoft Windows. The Windows libraries are available for Microsoft Visual Studio 2005, Visual Studio.NET 2003 and Visual Studio 6.0. All CDs include full technical support by phone/email and help fund the development of the library.




Marshallsoft provides a commercial software development tools for Windows XP, Windows Me, Windows 2000, Windows 98, Windows NT, Windows 95, MS-DOS and Pocket PC. The communications libraries claimed been used in tens of thousands of sites around the world. Their customers include many governments, research labs, schools and universities, small companies, international corporations, as well as individuals. The communications libraries are for C/C++, Pascal, PowerBASIC, Visual Basic, Delphi, Visual FoxPro, Visual dBase, Xbase++, MATLAB, FileMaker Pro, COBOL, and FORTRAN. Evaluation versions of all of the software can be downloaded from here, try it before you buy.



GOBLIN – A Graph Object Library for Network Programming Problems

GOBLIN is a C++ class library focused on graph optimization and network programming problems. It deals with all of the standard graph optimization problems discussed by textbooks and in courses on combinatorial optimization. This software package also consists of a shell interpreter which extends the well-known Tcl/Tk language to graph objects and a graph browser and editor tool. Executable solvers are available for practical optimization problems. The graph browser applies for teaching and scientific documentation purposes. GOBLIN is open source software and licensed by the GNU Lesser Public License (LGPL). That is, GOBLIN may be downloaded, compiled and used for scientific, educational and other purposes free of charge. For details, in particular the statements about redistribution and changes of the source code, observe the LGPL document which is attached to the package.



Network Library Directory

Another Winsock/Client-server/TCP/IP Components and libraries directory. Tagged as a commercial product.



SNMP C++ Library, MIB Compiler and SNMP Testing Tools

These are commercial products. The SNMP Builder for C++ has two different packages, supporting Windows 2003/2000/XP operating systems:

  • SNMP Builder for Microsoft VC++ v6 and .NET 2003, 2005.

  • SNMP Builder for Borland C++ Builder v6 and Studio 2006.

Both SNMP Builder packages include:

The MIB Compiler with a friendly and flexible graphic user interface allows the quick and easy accomplishment of the MIB compilation process. A programmer can determine the correct order of MIBs to compile in a matter of seconds using powerful built-in error processing and file search facilities. The final step of the MIB compilation process is generation of C++ header files with MIB object definitions. The MIB Compiler enables SNMP object references to use symbolic names. This makes programming easier and simplifies the software maintenance and modification process. New, efficient, easy to use and versatile methods have been added to make software development even easier and more pleasant. As with the SNMP Toolkit, the SNMP Builder comes with two very useful SNMP tools:

  • An SNMP Sender and

  • An SNMP Tracer.

These two GUI utilities provide a much more precise and flexible interface (comparing to MIB browser) assisting in debugging of SNMP software and also in studying how the existing SNMP software works in real life applications. The Tracer utility replaces the need for a very expensive protocol analyzers. It can display both parsed SNMP message fields (SNMP message header, PDU fields and variable binding list details) and raw message data. The trace can be saved and printed. The utility can receive on standard SNMP ports: 161 and 162, and also on non-standard ports. The Sender utility includes a graphic editor enabling the creation of SNMP request messages with precise control of message type, header fields and variable binding list. The utility can send the requests to a specified destination, displaying the details about sent requests and received replies. The sender can send the same request multiple times to a single destination, measuring network performance and the maximum number of requests an agent can process per second. These requests can be saved and then used later on during regression testing. The detailed programming guide and reference manual in Adobe Acrobat format contains hyperlinks which simplify the quick reference look-up and serves as an on-line help. The extensive programming guide illustrates all the aspects, features and pitfalls of using class library objects, methods and properties to achieve maximum performance, reliability and flexibility of the software being developed.



SocketCC – solution to writing networked IP applications

SocketCC is a class library that encapsulates the existing Sockets API which is available on all Linux/UNIX environments and provides a simple solution to writing networked IP applications in these environments. As an advantage, the class structure supports both the TCP and UDP Protocols as well as development of IPv4 and IPv6 capable applications. SocketCC was originally developed the personal needs while developing an IPv4/IPv6 Streaming Traffic Generator. At this stage an article about SocketCC was written and published in Dr. Dobbs Journal – read the article. The SocketCC library and associated documentation can be downloaded here.



Socket and Winsock components/libraries directory

directory that listing the Winsock and socket tools for all Winsock and socket components, controls, libraries and objects for .Net, ASP.NET, ActiveX, Java, Delphi. These are commercial products.



RockSaw – a simple API for performing network I/O with raw sockets in Java

RockSaw is a simple API for performing network I/O with raw sockets in Java. It has been deployed on thousands of computing nodes as part of internal custom enterprise applications. The current version of RockSaw compiles on Linux, Win32 with Cygwin/MinGW/Winsock or Visual C++, Solaris 8/9/10, FreeBSD 5.3, and Darwin. It should compile on other POSIX systems using the GNU tool chain. Configuration of the JNI build via autoconf may be added somewhere down the line. There just are not enough platform-specific cases in the native code to warrant it right now, but the GNU Makefile is accumulating if blocks. The given Ping.java example program requires at least VServ TCP/IP version 0.7.x to compile because it uses the ICMPEchoPacket class. RockSaw is released under the Apache License 2.0.



The ADAPTIVE Communication Environment (ACE) – an object oriented network framework

The ADAPTIVE Communication Environment (ACE) is a freely available, open-source object-oriented framework that implements many core patterns for concurrent communication software. ACE provides a rich set of reusable C++ wrapper facades (pdf document) and framework components that perform common communication software tasks across a range of OS platforms. The communication software tasks provided by ACE include:

ACE is targeted for developers of high-performance and real-time communication services and applications. It simplifies the development of OO network applications and services that utilize interprocess communication, event demultiplexing, explicit dynamic linking, and concurrency. In addition, ACE automates system configuration and reconfiguration by dynamically linking services into applications at run-time and executing these services in one or more processes or threads. ACE continues to improve and its future is bright. ACE is supported commercially by multiple companies using an open-source business model. In addition, many members of the ACE development team are currently working on building The ACE ORB (TAO).



C/C++ Tools For MySQL

Find tools for MySQL by C/C++ projects or snippets.



Eclipse – an open development platform

Eclipse is an open source community, whose projects are focused on building an extensible development platform, runtimes and application frameworks for building, deploying and managing software across the entire software lifecycle. Not just a Java IDE but Eclipse is much more than a Java IDE. The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different categories:

  • Enterprise Development.

  • Embedded and Device Development.

  • Rich Client Platform.

  • Rich Internet Applications.

  • Application Frameworks.

  • Application Lifecycle Management (ALM).

  • Service Oriented Architecture (SOA).

The Eclipse community is also supported by a large and vibrant ecosystem of major IT solution providers, innovative start-ups, universities and research institutions and individuals that extend support and complement the Eclipse Platform.



Opensourcetesting.org – open source software testing tools

“…Opensourcetesting.org aims to boost the profile of open source testing tools within the testing industry, principally by giving users easy access from one central location to the wide range of open source testing tools available. These tools are free as in speech, not free as in beer. While you will not need to pay a vendor to use the tools, they still have a cost of ownership through evaluation, implementation, training and maintenance costs, the same as any software does. But with a handful of commercial vendors dominating the proprietary software testing tools market, make no mistake about it – these tools can make a real difference to your life as a testing professional…”



Maptools – home to open source projects

Maptools is a resource for users and developers in the open source mapping community, and a home to many open source projects. The projects that are hosted here offer essential services including latest downloads, CVS repositories for source code, bug lists, community mailing lists, and project documentation.



G++ and VSIPL++ – signal and image-processing toolkit

G++ and VSIPL++ is a commercial software development environment and toolkit for developing high-performance signal and image-processing applications.



OWASP – Software security tool

The Open Web Application Security Project (OWASP) is dedicated to finding and fighting the causes of insecure software. Everything here is free and open source. The OWASP Foundation is a 501c3 not-for-profit charitable organization that ensures the ongoing availability and support for our work. Participation in OWASP is free and open to all.



FANN – Fast Artificial Neural Network Library

Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution in both fixed and floating point is supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast. PHP, C++, .NET, Ada, Python, Delphi, Octave, Ruby, Pure Data and Mathematica bindings are available. A reference manual accompanies the library with examples and recommendations on how to use the library. A graphical user interface is also available for the library. Features include:

  • Multilayer Artificial Neural Network Library in C.

  • Back propagation training (RPROP, Quickprop, Batch and Incremental).

  • Evolving topology training which dynamically builds and trains the ANN (Cascade2).

  • Easy to use (create, train and run an ANN with just three function calls).

  • Fast (up to 150 times faster execution than other libraries).

  • Versatile (possible to adjust many parameters and features on-the-fly).

  • Well documented (An easy to use reference manual, a 50+ page university report describing the implementation considerations etc. and an introduction article).

  • Cross-platform (configure script for Linux and Unix, dll files for windows, project files for MSVC++ and Borland compilers are also reported to work).

  • Several different activation functions implemented (including stepwise linear functions for that extra bit of speed).

  • Easy to save and load entire ANNs.

  • Several easy to use examples (simple train example and simple test example).

  • Can use both floating point and fixed point numbers (actually both float, double and int are available).

  • Cache optimized (for that extra bit of speed).

  • Open source (licensed under LGPL).

  • Framework for easy handling of training data sets.

  • Graphical Interface.

  • C++ Bindings.

  • PERL Bindings.

  • PHP Extension.

  • Python Bindings.

  • Delphi Bindings.

  • .NET Bindings.

  • Mathematica Extension.

  • Octave Extension.

  • Squeak Smalltalk bindings.

  • Pure Data Bindings.

  • RPM package.

  • Debian package.



Lemur – C/C++ toolkit for language modeling and information retrieval

“…The Lemur Toolkit is designed to facilitate research in language modeling and information retrieval, where IR is broadly interpreted to include such technologies as ad hoc and distributed retrieval, cross-language IR, summarization, filtering, and classification. The toolkit supports indexing of large-scale text databases, the construction of simple language models for documents, queries, or sub collections, and the implementation of retrieval systems based on language models as well as a variety of other retrieval models. The system is written in the C and C++ languages, and is designed as a research system to run under Unix operating systems, although it can also run under Windows. The toolkit is being developed as part of the Lemur Project, a collaboration between the Computer Science Department at the University of Massachusetts and the School of Computer Science at Carnegie Mellon University…”



OGRE – open source real time 3D rendering engine

OGRE is an open source real time 3D rendering engine. OGRE is packed with features to make your development life easier, whether you’re making games, architectural visualization, simulations, or anything else which requires a top-notch 3D rendering solution.



FLTK – C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS

FLTK (pronounced “fulltick”) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes. FLTK is provided under the terms of the GNU Library Public License, Version 2 with exceptions that allow for static linking



PIL – Python Imaging Library

The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities. Browse also other Python libraries



CL-GD – library for Common Lisp

CL-GD is a library for Common Lisp which provides an interface to the GD Graphics Library for the dynamic creation of images. It is based on UFFI and should thus be portable to all CL implementations supported by UFFI. A version which also works with CLISP is available from CLISP (in tgz). Also, beginning from version 0.5.0/0.5.1, CL-GD contains initial code to support CLISP and OpenMCL via CFFI. CL-GD comes with a BSD-style license so you can basically do with it whatever you want



Symbian/C++ OS SDKs and Others for Nokia mobile devices

Get Symbian C++ Toolkits/SDKs/Libraries and others for mobile software development of the mobile devices such as hand phones and handhelds. Available for platforms:

  1. Windows Phone SDK: Target the full range of exciting Nokia Lumia smartphones, including the latest: the Nokia Lumia 900 and Nokia Lumia 610, built on Windows Phone from Microsoft.

  2. Qt SDK: Want to develop for the stunning Nokia N9 or the extensive range of Qt-enabled Symbian phones? The Qt SDK delivers you the tools.

  3. Series 40: Build apps for the world’s largest mobile platform using using the Nokia SDK for Java and the Nokia Web Tools.

  4. Featured Technologies: Nokia uses a range of additional technologies to provide users with the experience they crave. Featured technologies include Location APIs, NFC, Symbian C++ and others.



Palm OS for smartphones and handheld devices

The Operating system for smartphones, handheld devices. Most Palm OS applications are written in C, development environments are available that will let you create Palm OS applications in a number of different languages including C, C++, Visual Basic, or Java. Available in commercial and open source versions. Solutions available for:

  1. Browser Solutions

  2. Solutions for Internet Appliances

  3. Smartphone Solutions

  4. Digital Publishing Solutions

  5. Network Solutions

  6. Other Technology - IrDa Protocol Stack



ActiveXperts SMS and Pager Toolkit

Another commercial products. The SMS and Pager Toolkit by ActiveXperts Software is an ActiveX/COM component that provides SMS and Pager messaging functionality. With this Toolkit, you can send and receive SMS messages via a:

  • GSM modem.

  • GSM phone.

  • SMPP compliant SMSC provider.

  • Hayes compatible modem.

With this Toolkit, you can also send pager messages via a:

  • Hayes compatible modem (only numeric paging).

  • SNPP Provider (alpha-numeric paging).

SMS and Pager Toolkit features the following:

  • Send alphanumeric text SMS messages.

  • Send numeric Pager messages.

  • Send multimedia SMS messages, including ringtones, pictures and logo’s.

  • Send new voicemail/e-mail/fax indications.

  • Verify delivery of outgoing SMS message.

  • Send WAP Push messages and WAP Bookmarks.

  • Receive SMS messages.

  • Support for Unicode, to support foreign languages like Chinese, Turkisch, etc.

  • Support for multi-part messages, to allow messages longer than 160 characters.

  • Support for GSM modems and GSM phones to send and receive SMS messages.

  • Support for SMPP (Short Message Peer to Peer) providers for large message volumes.

  • Support TAP/XIO and UCP dial-in SMSC providers.

  • Support Windows ‘Phone and Modem devices’ and direct COM ports.

  • Send numeric Pager messages through DTMF.

  • Send alpha-numeric Pager messages through SNPP.

  • Support Multi-threading environments. The component is thread-safe, which means it can be used in a multi-threaded environment.

  • Troubleshooting facilities by tracing all modem commands and responses.

  • Samples included for various development platforms: Visual Basic, Visual Basic .NET, Visual C++, Visual C# .NET, ASP, ASP .NET, Delphi and more



Ucancode.net ActiveX component, MFC library & Others

UCCDraw ActiveX Control V9.80 – UCCDraw is an ActiveX Component that enables you to build Visio-style charts from within your application. Another product is XD++ MFC Library Professional Edition – XD++ Library for MFC by UCanCode.Net Software, an MFC extension library for graphs, diagrams and networks, allows developers to add drag and drop graphical user interfaces to their windows applications. It incorporates custom graphical objects and enhanced drawing capabilities into your applications within a few minutes. Complete source code for the library (Over 260+ classes) and all sample projects are included with the retail version of the XD++. You can freely distribute any application that uses the XD++ MFC Library without worry use of the XD++ is royalty free. After your purchase no additional fees are required, you can use the library indefinitely. These products are commercial.



Oracle Class Library (OCL) for C++

This is a commercial product. Oracle Class Library (OCL) provides native connectivity to the Oracle database server. OCL uses Oracle Call Interface (OCI) directly. OCI is low-level native application programming interface to access to Oracle. Using OCI in Oracle Class Library allows creating lightweight and fast applications working with Oracle. Oracle Class Library encapsulates OCI calls in high-level classes that allow hiding the complexity of using OCI directly and keeping performance and all abilities of native routines. With OCL you can use the power and flexibility of SQL in your application programs without any restrictions. OCL contains classes to control connection, execute SQL statements, store and process result rows of queries and some common classes useful for developing database applications. All classes have intuitive, easy to use interface. OCL is written with ANSI C++ and uses Standard C++ Library only that allows you to port your application easily to another platform. Oracle Class Library provides easiness in using from Pro*C/C++ and power of Oracle Call Interface. OCL supports Oracle 11g, 10g, 9i, 8i, 8.0 and 7.3, including Personal and Lite. OCL includes library for Windows and Linux compatible with following compilers:

  • Microsoft Visual C++ 7.1, 7.0, Visual C++ 2005 and Visual Studio 2008

  • Microsoft Visual C++ 6.0

  • Borland C++ Builder 6

  • Borland C++ Builder 5

  • Borland Kylix 3 for C++

  • GNU C++ compiler for Linux version 2.96

Don’t forget also to browse the site for other libraries/tools.



Professional C++ CGI Development Libraries

These libraries form the core basic toolset for developing powerful CGI applications in C++. These libraries were developed to be extremely simple to use, but powerful enough to provide the extra control that C++ programmers crave. Although primarily developed for Linux systems, each has been ported to Windows, with support for Visual C++ and Borland development environments. These libraries have recently been converted to open source and are now freely available under the GPL (Gnu Public License), commercial licenses are also available upon request for a small fee. Those libraries include C++ CGI parser libraryC++ config file libraryC++ socket libraryC++ database library and C++ Session Library.



CodeCogs – library for mathematics, statistics, science, engineering and finance


“…CodeCogs is for technical developers who need efficient solutions in computing, mathematics, physics, statistics, engineering and finance. Its vision is to encourage code reuse by creating an open source software database, into which anyone can contribute their code on their terms. CodeCogs is a non-profit organization, with all revenue used to pay for the growth of this library…”



Associative Neural Network Library

This is a C++ implementation of most known high-performance associative neural networks models, including those based on sparse architectures and pseudo-inverse learning. Read more about the Library. Critical examples include PINN memory for Perceptual Vision Systems and Face Recognition in Video.



Metakit – embedded database library

Metakit is an efficient embedded database library with a small footprint. It fills the gap between flat-file, relational, object-oriented, and tree-structured databases, supporting relational joins, serialization, nested structures, and instant schema evolution. There is a C++ API, a Python binding called Mk4py, and a Tcl binding called Mk4tcl. You can manipulate and exchange data between any of these. Data files are portable. The library has been used on Unix, Windows, Macintosh, VMS, and others, spanning a range of 16- to 64-bit architectures, from PDA’s to S390′s. This library is in active use in various commercial projects and products on millions of desktops. Don’t forget to browse other kits as well…



Synapse project – blocking (synchronous) sockets network communication

This project deals with network communication by means of blocking (synchronous) sockets or with limited non-blocking mode. This project not using asynchronous sockets. The Project contains simple low level non-visual objects for easiest programming without problems (no need multithread synchronization, no need for windows message processing…) Great for command line utilities, visual projects, NT services… You can find more after reading about and features. This project is freeware and open source under modified BSD style license.

The SYNAPSE library aims to create a complete library of classes and functions that would markedly simplify application programming of network communication using Winsock. At first glance this effort might seem needless as there are many free components covering this area, however they mostly use asynchronous methods while SYNAPSE library operates in a synchronous method.

Synchronous mode (called ‘blocking’ in Winsock terminology) features acting thread waits until the needed operation terminates. Thus when we want to send data, the program exits function only after data is sent – or – if we want to receive data, the program exits the function only after the desired data is received. Thus, much more crisp and simple programming is achieved. You will feel it when trying to implement any Internet protocol, which is typically based on ‘send-wait for reply’ method. If you want to implement it in an asynchronous method, you would have to accept complicated event processing and synchronous mode simulation. Therefore a synchronous socket is simple and natural for the majority programming tasks. The whole library is oriented on the WIN32 environment or Linux environment, so you will need Delphi 3.0 or higher and Kylix 1.0 or higher to use it



DataReel – cross-platform database and communications toolkit

“…DataReel Open Source – A cross-platform database and communications toolkit. Datareel is a comprehensive cross-platform C++ development kit used to build multi-threaded database and communication applications. C++ is a programming language that produces fast executing compiled programs and offers very powerful programming capabilities. Unlike interpreted languages such as JAVA and PERL the C++ language by itself does not contain built-in programming interfaces for database, communications, and multi-threaded programming. By using DataReel you can extend the power of the C++ programming language by using high-level programming interfaces for database, communications, and multi-threaded programming…”



Sound Processing Kit – SPKit, a C++ object-oriented class library for audio signal processing

Sound Processing Kit is an object-oriented class library for audio signal processing. Sound Processing Kit (abbreviated as SPKit) includes classes for various signal processing tasks, but most importantly, it introduces a way of implementing sound processing algorithms in a simple object-oriented manner. Sound Processing Kit is implemented in C++.

SPKit is designed to be portable. The current version requires a bare-bones C++ 2.0 compatible compiler (templates and exceptions are not needed). ANSI C standard libraries are required. The source code should compile with little or no modification on most UNIX compatible platforms.

There are three versions of the SPKit class library: a “generic” version, a libaudiofile version, and an SGI version. The generic version is the most portable one and does not require extra libraries audio file I/O. On the other hand, the number of supported sound file formats is very limited. The libaudiofile version requires the Audio File Library system for file I/O. Audio File Library is with many Linux distributions and has been ported to other operating systems as well. The home page of Audio File Library is at audio files. The SGI version is written specifically for the SGI/IRIX system.



Free C++ Signal and Image Processing Library

The C++ Free Signal and Image Processing Library is a free collection of general-purpose, optimized C++ routines and classes for signal and image processing along with utility classes to aid image and video file manipulation. These routines are typically used in computationally intensive real-time applications, where optimal execution speed is critical. The library also provides efficient implementations for the most common data types used in signal and image processing applications. Function Categories in the Library include:

  • Pointwise operations – Pointwise transformation, normalization and thresholding.

  • Spectral processing – Spectral processing based on the Fast Fourier Transform (FFT) and inverse FFT.

  • Linear filtering – Convolution, correlation, FIR and IIR filtering.

  • Nonlinear filtering – Minimum, maximum, median, alpha trimmed mean, OS filtering.

  • Binary morphology – Erosion, dilation, opening, closing, hit-and-miss, convex hull, skeleton, hole filling, pruning, thickening, thinning, object reconstruction, object shifting.

  • Grayscale morphology – Grayscale erosion, dilation, top-hat and h-dome transformation with arbitrary structuring elements.

  • Pattern matching – Binary and gray-scale pattern matching with displacement calculation.

  • Histogram analysis – Image histogram calculation, equalization, and statistical analysis.

  • Feature detection – Object sorting, Sobel and Canny type edge detection.

  • Feature extraction – Binary image indexing; area, major axis, minor axis, eccentricity, equivalent diameter, orientation, extension, centorid, bounding box and extrema calculation.

  • Statistical analysis – Calculation of sum, min, max, mean, avg, rms, h-mean, skew, etc






id="aswift_1" scrolling="no" width="300" height="250">






Dew Research – rapid application development (RAD) tools for scientific and engineering fields

Dew Research brings developers these fine RAD (Rapid Application Development) tools that speed up custom software application development many scientific and engineering fields. The Borland and Microsoft platforms are fast and powerful tools for basic application software development and when you integrate their math library components, you achieve even shorter custom application development cycle times. If you are engaged in the development of object oriented software, see their numerical library components for Borland C++ Builder and Microsoft Visual Studio. And for Microsoft Office application development, Excel spreadsheets can perform advanced mathematical functions when using their fast library components with Visual Studio. The libraries include mathematics, statistical analysis, digital signal processing and artificial intelligence. Browse also other C++ library packages such as Builder C++ libraries package as listed below. Embarcadero Delphi Products - The products available include:

  • MtxVec, a comprehensive mathematics library with LAPACK support

  • Stats Master, an add-on package for statistical analysis

  • DSP Master, an add-on package for digital signal processing

  • Data Miner, a separate library for automatic classification (artificial intelligence)

  • Dew Lab Studio is a set of all the above products and comes at a special discounted price, with optional TeeChart charting library by Steema

  • All products support W32 and DotNet application development.

Embarcadero C++ Builder - For developing large-scale computer software, object-oriented C++ is the standard tool, and Borland C++ Builder is an excellent development platform. Our products include:

  • MtxVec, a comprehensive mathematics library with LAPACK support

  • Stats Master an add-on package for statistical analysis

  • DSP Master an add-on package for digital signal processing

  • Data Miner is a separate library for automatic classification (artificial intelligence)

  • Dew Lab Studio is a set of all the above products and comes at a special discounted price with optional TeeChart charting library by Steema

Microsoft Visual Studio - Take advantage of Visual Studio integrated tools and languages, and add our components to boost calculation performance:

  • Dew Math Library is a comprehensive mathematics library with LAPACK support for MS VS.NET

  • Stats Master, an add-on library for statistical analysis

  • DSP Master, an add-on library for digital signal processing



ChartDirector – C++ and other languages chart component

Chart component for windows and web applications. The general features include comprehensive chart styles, financial library with source code, meters and gauges, flexible axis system, markup text support, advanced color system, AJAX enabled user interactions etc. This is a commercial product.



OptiVec – vector, matrix functions and complex-number math routines

OptiVec is a complete, hand-optimized set of libraries with over 3500 vector and matrix functions, and complex-number math routines. It contains the fully vectorized forms of all operators and math functions of C/C++/Pascal/Delphi for all integer and floating-point (including complex) data types, plus many other real and complex math functions and routines for statistics, analysis, FFT techniques, curve fitting, interpolations, vector and matrix algebra, matrix decomposition, and graphics. In parts, OptiVec overlaps with the well-known BLAS and LINPACK libraries, but features an easier nomenclature and a generally more efficient implementation. It consists of three groups of functions:

  • VectorLib – Vector functions.

  • MatrixLib – Matrix functions.

  • CMATH – Complex number math functions (also available separately).

The OptiVec libraries are static, no DLLs. This means only those functions which you actually need are linked into your application. Of course, you are free to include OptiVec functions in your DLLs, but there is no need to deal with yet another set of DLLs when you distribute your applications. Once you purchase the Commercial Edition of OptiVec, you can freely distribute applications containing OptiVec functions. No run-time licenses needed for your customers. An Educational Edition is available at a strongly reduced fee for non-commercial use. The target Compilers include:

  • Embarcadero (former Borland and CodeGear) C/C++ compiler series (RAD Studio, Borland Development Suite, BC++ Builder 1-6, BC++ 4.0 or higher, Turbo C++)

  • Microsoft Visual C++ (5, 6, up to Visual Studio 2010).

  • Borland Delphi (4 through 7, 2005, 2006, 2007, 2009, 2010, XE, XE2, Turbo Delphi, RAD Studio).



Image Processing Products for Visual C++

This is a list of the image processing products that can be used with Visual C++ compiler. Contains dozen of products (libraries) that can be installed as Visual C++ libraries, .Net components, DLL and ActiveX.



VSIPL – Vector Signal Image Processing Library

VSIPL stands for the Vector Signal Image Processing Library. It is an application programming interface (API) defined by an open standard developed by embedded signal and image processing hardware and software vendors, academia, application developers, and government labs. A number of hardware and software vendors have developed VSIPL products, and it is being increasingly used by developers who desire a highly efficient and portable computational middleware for signal and image processing applications. There is VSIPL Forum meetings are now being held quarterly, in conjunction with the HPEC-SI program development working group. The combined group has developed and approved VSIPL++ v1.0, an object-oriented C++ binding for VSIPL, and is developing Parallel VSIPL++.



Vigra – computer vision library on customizable algorithms and data structures

VIGRA stands for “Vision with Generic Algorithms”. It’s a computer vision library that puts its main emphasize on customizable algorithms and data structures. By using template techniques similar to those in the C++ Standard Template Library (STL), you can easily adapt any VIGRA component to the needs of your application, without thereby giving up execution speed. VIGRA is subject to a license which is identical to the MIT X11 License and thus compatible to the GPL. The features include: Mathematical Tools, Image Analysis, Segmentation, Filters and Image Processing



Victor – Image Processing Library

Victor Image Processing Library is a collection of functions that allow you to create image applications. Victor gives your programs powerful image processing, display, and file handling capabilities. The Victor package includes the library with complete documentation consisting of a User’s Guide and Library Reference. Each function is fully explained and its use is illustrated by examples. Victor also includes a complete image processing program that you can recreate and modify to fit your product needs. This is a commercial product



NetStream – C++ network library for client/server communication over TCP/IP

NetStream is simple network library for client-server communication over TCP/IP. It’s written in C++ and should run on GNU/Linux (maybe any other POSIX System), and MS Windows. This library was created as part of KIV/UPS course work. You can download the source code



Gosu – 2D game development library for the Ruby and C++ programming languages

Gosu is a 2D game development library for the Ruby and C++ programming languages. Available for Mac OS X, Windows and Linux. The C++ version is also available for iPad, iPhone and iPod Touch. Gosu features easy to use interfaces to:

  • Hardware accelerated 2D graphics.

  • Sound samples and music in all formats supported by FMOD.

  • Keyboard, mouse and gamepad/joystick input



TA-Lib – C/C++ library for technical analysis of stock, future and commodity market data

TA-Lib provides common functions for the technical analysis of stock, future and commodity market data. Widely used by trading software developers working with Excel, .NET, Java, Perl, Python or C/C++. For the BSD License, it can be used freely in open-source or commercial software (click here for details). Brief features include:

  • More than 125 technical analysis indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands etc.

  • Includes candlestick pattern recognition.

  • Optional abstract API allowing your code to adapt automatically when new functions are added



Qt – C++ high-performance, cross-platform application development

Qt sdk is for high-performance, cross-platform application development. It includes a C++ class library and tools for cross-platform development and internationalization. Available in commercial and open source versions.



Raknet – cross platform C++ network library for games

Raknet is a cross platform C++ network library designed to allow programmers to add response time-critical network capabilities to their applications. It is mostly used for games, but is application independent. It runs on Windows, Linux, Macs, and consoles. It has been built on Visual Studio, GCC, Code Blocks, DevCPP and others



Torque Network Library – cross-platform C++ networking API for simulations and games

The Torque Network Library is a robust, secure, easy to use, cross-platform C++ networking API designed for high performance simulations and games. The network architecture in TNL has powered some of the best internet multiplayer action games to date. Whether you’re writing a multiplayer game, developing a complex simulation, or just need a solid foundation for network apps, TNL will meet your needs. TNL is available under the GNU General Public License (GPL), an indie license, and a commercial license



Gameswf – open source library for parsing and rendering SWF movies

Gameswf (pronounced “game swiff”) is an open source Public Domain library for parsing and rendering SWF movies, using 3D hardware APIs for rendering. It is designed to be used as a UI library for computer and console games. It is written in C++, and compiles under Windows, Mac OSX and Linux, using GCC and MSVC. It includes code for rendering with OpenGL. The rendering module is factored out so that you can port to other APIs. It is currently being maintained as on SourceForge. The biggest benefit of using SWF as a file format for game UIs is the availability of high quality authoring tools (like Macromedia Flash MX) and the large number of talented designers who have expertise with these tools. The SWF format is not perfectly suited for game UIs, but it’s not bad, and my hope is that gameswf will help improve the quality of game UIs while reducing the effort that goes into making them



GapiDraw – graphics SDKs for Windows handheld computers and smart phone

Gapidraw is a graphics SDKs for handheld computers and smart phone. It is the graphics platform to use when creating applications with high demands for fast 2D graphics on mobile devices. The GapiDraw platform supports the creation of high-performance cross-platform graphical applications across a variety of handheld hardware configurations, including Windows Mobile devices and Symbian mobile phones



Mathtools C & C ++ Graphics and Visualization

Mathtools C & C++ graphics and visualization libraries directory that mostly used in engineering. Don’t forget to browse other C & C++ libraries and components arranged alphabetically.



Allegro – game programming library for C/C++ developers

Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris and Darwin), Windows, QNX, BeOS and MacOS X. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed data file and a GUI.



Fastgraph – 2D, 3D graphics library

Fastgraph is a programmer’s graphics library featuring a comprehensive suite of more than 300 functions for tasks such as 2D and 3D graphics, color and palette management, bitmap display and manipulation, image files, and much more. It is easy to use, small, quick, well-documented, and compatible with most compilers and other programming toolkits. Versions are available for Windows, Windows CE, and DOS. This is a commercial product



Mesa – 3D graphics library API

Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL (OpenGL is a trademark of Silicon Graphics Incorporated). To the extent that Mesa utilizes the OpenGL command syntax or state machine, it is being used with authorization from Silicon Graphics, Inc. (SGI). However, the author does not possess an OpenGL license from SGI, and makes no claim that Mesa is in any way a compatible replacement for OpenGL or associated with SGI. The Mesa distribution consists of several components. Differentcopyrights and licenses apply to different components. Those who want a licensed implementation of OpenGL should contact a licensed vendor



GizmoSDK – software development kit

GizmoSDK provides a top quality software development kit used by software engineers at Saab Training Systems AB. It can be used in a variety of demanding application development projects. The SDK will give you a set of components that are uniform and well integrated in an open architecture. You will be able to develop advanced software in a short time and produce robust and high quality code, as the components are thoroughly tested and verified in their product test line and by their customers. GizmoSDK simplifies large team development projects and supports process methodology standards. GizmoSDK is platform independent and integrates with various GUI subsystems. This is a commercial product



ImageMagick – C & C++ software suite to create, edit, and compose bitmap images

ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bĕzier curves. It is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite language. The interfaces available are: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject(COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP),IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically andautomagically.



DISLIN – high-level plotting C library for displaying data as curves, polar plots, bar graphs, pie charts, 3D-color plots, surfaces, contours and maps

DISLIN is a high-level plotting library for displaying data as curvespolar plotsbar graphspie charts3D-color plotssurfacescontours and maps. DISLIN is intended to be a powerful and easy to use software package for scientists and programmers. There are only a few graphics routines with a short parameter list needed to display the desired graphical output. A large variety of parameter setting routines can then be called to create individually customized graphics. The software is available for several C, Fortran 77 and Fortran 90/95 compilers on the operating systems UNIX, Linux, FreeBSD, OpenVMS, Windows and MS-DOS. DISLIN programs are very system-independent; they can be ported from one operating system to another without any changes. DISLIN is free for non-commercial use. Licenses for selling programs linked with DISLIN or for using DISLIN in an environment related to business are available from this site



Matpack – C++ numeric and graphics library

Matpack is a C++ numeric and graphics library implementing methods that are needed in a scientist’s or engineer’s everyday life. All methods and tools are implemented in native C++ using a modern object oriented style without sacrificing the performance. It is released under GPL



DaVinci – Windows DLLs and OCXs for exploiting the enhanced image manipulation

“…DaVinci is a set of Windows DLLs and OCXs and designed both for 16 and 32 bit development and for exploiting the enhanced image manipulation capabilities built into 32 bit Windows operating systems. This package has been in constant development and maintenance since 1993 and is compatible with Windows 3.1, 3.11, 95, 98 NT 3.51, NT 4.0, 2000 and XP…”



OpenSceneGraph – open source high performance 3D graphics toolkit

The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modeling. Written entirely in Standard C++ and OpenGL it runs on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX and FreeBSD operating systems.



QuantLib – C++ library for financial quantitative analysts and developers

QuantLib is a C++ library for financial quantitative analysts and developers. It is written in C++ with a clean object model, and is then exported to different languages such as C#, Objective Caml, Java, Perl, Python, GNU R, Ruby, and Scheme. The QuantLibAddin/QuantLibXL project uses ObjectHandler to export an object-oriented QuantLib interface to a variety of end-user platforms including Microsoft Excel and OpenOffice.org Calc. Bindings to other languages and porting to Gnumeric, Matlab/Octave, S-PLUS/RMathematica, COM/CORBA/SOAP architectures, FpML, are under consideration. See the extensions page for details. The library could be exploited across different research and regulatory institutions, banks, software companies, and so on. Being a free/open-source project, quants contributing to the library would not need to start from scratch every time. It is Non-Copylefted Free Software released under the modified BSD License. It is also OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. QuantLib is free software and you are allowed to use, copy, modify, merge, publish, distribute, and/or sell copies of it under the conditions stated in the QuantLib License



MLC++ – C++ classes for supervised machine learning

“…MLC++ is a library of C++ classes for supervised machine learning. The MLC++ utilities were created using the library. MLC++ (up to version 1.3.X) was developed at Stanford University and was public domain; that version is still distributed as such by SGI. SGI MLC++ (V2.0 and higher) includes improvements to MLC++. These improvements are research domain only and are available in both source and object code formats through this web site. SGI MLC++ is used in SGI’s MineSet product as the main engine for the server data mining. MLC++ provides general machine learning algorithms that can be used by end users, analysts, professionals, and researchers. The main objective is to provide users with a wide variety of tools that can help mine data, accelerate development of new mining algorithms, increase software reliability, provide comparison tools, and display information visually. More than just a collection of existing algorithms, MLC++ is an attempt to extract commonalities of machine learning algorithms and decompose them for a unified view that is simple, coherent, and extensible…”



SQLAPI++ – C++ library for accessing all SQL databases

SQLAPI++ is a C++ library for accessing multiple SQL databases such as Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL and ODBC. It uses native APIs of target DBMS so applications developed with SQLAPI++ library run swiftly and efficiently. The product also provides a low-level interface that allows developers to access database-specific features. By encapsulating a vendor’s API, SQLAPI++ library acts as middleware and delivers database portability.



GMP – free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers

“…GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational and floating point numbers. There is no practical limit to the precision except the ones implied by the available memory in the machine GMP runs on. GMP has a rich set of functions, and the functions have a regular interface. The main target applications for GMP are cryptography applications and research, Internet security applications, algebra systems, computational algebra research, etc. GMP is carefully designed to be as fast as possible, both for small operands and for huge operands. The speed is achieved by using full words as the basic arithmetic type, by using fast algorithms, with highly optimized assembly code for the most common inner loops for a lot of CPUs, and by a general emphasis on speed. GMP is faster than any other bignum library. The advantage for GMP increases with the operand sizes for many operations, since GMP uses asymptotically faster algorithms. The first GMP release was made in 1991. It is continually developed and maintained, with a new release about once a year. GMP is distributed under the GNU LGPL. This license makes the library free to use, share, and improve, and allows you to pass on the result. The license gives freedoms, but also sets firm restrictions on the use with non-free programs. GMP is part of the GNU project…”



MPFR – C library for multiple-precision floating-point computations with exact rounding

The MPFR library is a C library for multiple-precision floating-point computations with exact rounding (also called correct rounding). It is based on the GMP multiple-precision library. The main goal of MPFR is to provide a library for multiple-precision floating-point computation which is both efficient and has a well-defined semantics. It copies the good ideas from the ANSI/IEEE-754 standard for double-precision floating-point arithmetic (53-bit mantissa). MPFR is free. It is distributed under the GNU Lesser General Public License (GNU Lesser GPL). The library has been registered in France by the Agence de Protection des Programmes which guarantees your freedom to share and change MPFR, to make sure MPFR is free for all its users. Unlike the ordinary General Public License, the Lesser GPL enables developers of non-free programs to use MPFR in their programs. Here, you can also find other related and free software as listed below.



ALSA – Advanced Linux Sound Architecture

The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. ALSA is released under the GPL (GNU General Public license) and the LGPL (GNU Lesser General Public License). ALSA has the following significant features:

  • Efficient support for all types of audio interfaces, from consumer soundcards to professional multichannel audio interfaces.

  • Fully modularized sound drivers.

  • SMP and thread-safe design.

  • User space library (alsa-lib) to simplify application programming and provide higher level functionality.

Support for the older OSS (Open Source Software) API, providing binary compatibility for most OSS programs



IP2Location C & Other Language/Script Libraries/Components

IP2Location is a C library that enables the user to find the country, region, city, coordinates, zip code, ISP and domain name that any IP address or hostname originates from. It has been optimized for speed and memory utilization. Developers can use the API to query all IP2Location, binary databases for applications written in C or supporting static/dynamic library. The license is restricted.



SDL – Simple DirectMedia Layer Library

Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video frame buffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of “Civilization: Call To Power”. SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for Amiga OS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, Symbian OS, and OS/2, but these are not officially supported. SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, and Smalltalk. SDL is distributed under GNU LGPL version 2. This license allows you to use SDL freely in commercial programs as long as you link with the dynamic library



homest – C/C++ library for homography estimation

This is a C/C++ library for homography estimation that is distributed under the GNU General Public License (GPL). A homography (sometimes also called a collineation) is a general plane to plane projective transformation whose estimation from matched image features is often necessary in several vision tasks. A homography has eight degrees of freedom and is represented by a non-singular homogeneous 3×3 matrix. homest implements a technique for non-linear, robust homography estimation from matched image point features. This technique computes a homography estimate that minimizes an appropriate cost function defined on matching points (either symmetric transfer error or Sampson error) and includes robust regression techniques for coping with outliers. To compile, homest requires the levmar Levenberg-Marquardt non-linear least squares package andLAPACK



libpq – C API to PostgreSQL

Libpq is the C application programmer’s interface to PostgreSQL. Libpq is a set of library functions that allow client programs to pass queries to the PostgreSQL backend server and to receive the results of these queries. Libpq is also the underlying engine for several other PostgreSQL application interfaces, including those written for C++, Perl, Python, Tcl and ECPG



MIRACL – Multiprecision Integer and Rational Arithmetic C/C++ Library

MIRACL – Multiprecision Integer and Rational Arithmetic C/C++ Library is a Big Number Library which implements all of the primitives necessary to design Big Number Cryptography into your real-world application. It is primarily a tool for cryptographic system implementers. RSA public key cryptography, Diffie-Hellman Key exchange, DSA digital signature, they are all just a few procedure calls away. Support is also included for even more esoteric Elliptic Curves and Lucas function based schemes. The latest version offers full support for Elliptic Curve Cryptography over GF(p) and GF(2m). Less well-known techniques can also be implemented as MIRACL allows you to work directly and efficiently with the big numbers that are the building blocks of number-theoretic cryptography. Although implemented as a C library, a well-thought out C++ wrapper is provided, which greatly simplifies program development. Most example programs (25+ of them) are provided in both C and C++ versions. The latest version also implements the new Advanced Encryption Standard (AES), Modes of Operation, and the new hashing standards SHA-160/256/384/512. MIRACL is compact, fast and efficient and easier than ever to get the same near-optimal performance from any processor. Although essentially a portable library, inline assembly and special techniques can be invoked for blistering speed. MIRACL has also been successfully used in both embedded and DSP environments where space is at a premium. A new special purpose macro assembler feature facilitates the achievement of best possible performance from your embedded processor (embedded – .doc document). MIRACL is, to an extent, self-configuring. Use your compiler to compile and run a simple configuration program, which proceeds with user interaction to generate optimal settings for your environment. Unlike other Cryptographic libraries, MIRACL does not merely provide an opaque interface to a predetermined set of Cryptographic methods, but rather a set of tools that enable any new number-theoretic technique to be implemented quickly, so that the end-user is, for example, free to design their own Cryptographic API. It is particularly appropriate (and free) for educational use.



SQLite – C library

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

  • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.

  • Zero-configuration – no setup or administration needed.

  • Implements most of SQL92 standard.

  • A complete database is stored in a single disk file.

  • Database files can be freely shared between machines with different byte orders.

  • Supports databases up to 2 terabytes (241 bytes) in size.

  • Sizes of strings and BLOBs limited only by available memory.

  • Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.

  • Faster than popular client/server database engines for most common operations.

  • Simple, easy to use API.

  • TCL bindings included. Bindings for many other languages available separately.

  • Well-commented source code with over 95% test coverage.

  • Self-contained: no external dependencies.

  • Sources are in the public domain. Use for any purpose.

The SQLite distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.




The package ADOL-C facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run time and randomly accessed memory of the given function evaluation program. ADOL-C is available free of charge provided under the terms of the Common Public License



IMSL C Numerical Library

This is a commercial product. The IMSL C Numerical Library provides advanced mathematical and statistical functionality for programmers to embed in applications that are written in one of the most important mainstream programming environments in use today, the C/C++. A typical application areas for this library include:

  • Portfolio optimization in financial services.

  • Risk management in financial services.

  • Inventory management and demand forecasting.

  • Modeling and simulation in high performance computing.

  • Computational biology analysis and modeling.

  • ISVs embedding mathematical engines into their software offerings.




The open source GeoIP C API includes a free GeoLite Country database. The code is licensed under the LGPL. This API should work on most UNIX and GNU/Linux platforms. A free GeoLite City database is also available. A FreeBSD Port is available from FreeBSD.org. Also work on Windows platform



CLAM – C++ Library for Audio and Music

CLAM is a full-fledged software framework for research and application development in the Audio and Music domain. It offers a conceptual model as well as tools for the analysis, synthesis and transformation of audio signals. If you are interested in learning more about CLAM you should visit the documentation section in this same website and read any of the articles or presentations listed there



Robotics control C++ libraries

Find C/C++ libraries that can be used in robot control programs at DMOZ open directory and in Google



LiDIA – C++ library for computational number theory

LiDIA is a C++ library for computational number theory which provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms. LiDIA is developed by the LiDIA Group at the Darmstadt University of Technology. LiDIA is free for non-commercial purposes (license) and comes with the full source code. The current release of LiDIA contains the following components:

  • Arithmetic Interfaces to cln, gmp, libI, piologie.

  • Basic arithmetic over Z, Q, R, C, interval arithmetic, GF(2n), GF(pn).

  • Factorization: Integer Factorization (Trial Division, Elliptic Curve Method, Self-Initializing Multipolynomial Quadratic Sieve with Lanczos algorithm), Factorization of Polynomials over finite fields (V. Shoup’s algorithms), Factoring ideals of algebraic number fields.

  • Lattice Basis Reduction: various versions of LLL/MLLL (Schnorr-Euchner, Benne de Weger).

  • Linear Algebra over Z: basic operations, normal forms of matrices (G. Havas algorithms)
    Number Fields: Quadratic Number Fields including a new implementation of Buchmann’s sub exponential algorithm for computing classgroups using mpqs techniques, Higher-Degree Number Fields arithmetic and maximal order.

  • Polynomials: template classes for univariate polynomials with special algorithms for different domains.

  • Elliptic Curves: elliptic curves over the rational and over finite fields (includes code written by J.Cremona and N. Smart). There is also a package for counting points on elliptic curves as well as a package for generating cryptographically strong curves.

  • Primality Proofing: Besides the standard probabilistic primality tests in the base package there is a new elliptic curve based primality proofer in the GEC package.

  • Other Generic Data Types: vectors, matrices, power series, and hash tables implemented as templates

Other related and useful libraries in other languages are listed below:

var mediav_ad_pub = 'P0o2jZ_1479874';
var mediav_ad_width = '680';
var mediav_ad_height = '200';

scrolling="no" src="http://show.g.mediav.com/s?ver=1.2.7&enifr=1&showid=P0o2jZ&type=1&of=2&uid=14974259904302133495810361150782&isifr=0&title=C%2B%2B%E5%BC%80%E6%BA%90%E5%BA%93%E9%9B%86%E5%90%88&refurl=http%3A%2F%2Fwww.fx114.net%2Fqa-118-114031.aspx">

  • 1
  • 7
    觉得还不错? 一键收藏
  • 0


  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助




当前余额3.43前往充值 >
领取后你会自动成为博主和红包主的粉丝 规则
钱包余额 0