1. 程式人生 > >C++跨平臺開源庫 之三

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:

  • Related development environment: OraDeveloper Studio – a standalone IDE for Oracle developers.

  • Integrated development solution: OraDeveloper Tools – an incorporated into Visual Studio and Borland Delphi.

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

  • 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

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

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:

  • SNMP C++ Class Library v3.3 supporting SNMP v2c and v1.

  • Guide and Reference Manual.

  • Examples.

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

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.

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

  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:

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

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 (ma