1. 程式人生 > >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