C/C++向けのライブラリへのリンク集。

捜し物するなら、下記ページも利用可能。

Microsoft VisualC++向けで COM(Component Object Model) を利用するなら、下記ページも利用可能。

各種ライセンスについては、下記ページも参照方。

関連ドキュメント

Miscellaneous

多機能過ぎて分類不能だがね・・・

OpenSource

libelf <LGPL>
ELF object file access library.
libelf.so.0 と libelf.so.1 の2つの実装が有るらしいが、こちらは libelf.so.0 の方。

For C++

Smalltalk-like C++ Class library <LGPL>
It should allow programmer to use modern techniques like extrem programming (XP) and simplify refactoring process.
WFC(Win32 Foundation Classes) <BSD>
Microsoft targetted MFC for GUI's and not generic programming. When I stopped doing GUI work, MFC became less and less useful. Also, Microsoft wasn't supporting NT in MFC (no registry support, no services support, etc) so I was forced to write my own class library to do NT specific things.
VC++6.0のMFCに+αするライブラリ。なのでVC++7.1以降では相当機能が存在する場合もあるので注意。
Macho(The Machine Objects class library) <MIT>
The Machine Objects class library (in short Macho) supports a subset of the UML statechart notation for implementing hierarchical state machines in straight C++, similar in spirit to the GoF "State" design pattern.
LTI-Lib <LGPL>
LTI-Lib is an object oriented computer vision library written in C++ for Windows/MS-VC++ and Linux/gcc. It provides lots of functionality to solve mathematical problems, many image processing algorithms, some classification tools and much more...
GNU Telephony - GNU Common C++ <LGPL>
GNU Common C++ is a portable and highly optimized class framework for writing C++ applications that need to use threads and support concurrent sychronization, and that use sockets, XML parsing, serialization, config files, thread-optimized String and data structure classes, etc.
libdodo <GPL>
libdodo - c++ library that provides different extensions in c++. database, xml, sockets, disk, stdin/stdout operations, regexp(based either on pcre or POSIX), cgi interface, misc usefull tools. Powerfull system of hooks!
OSSP(Open Source Software Project) Packages: Libraries
OSSP is a fully non-profit Open Source Software project, founded by Ralf S. Engelschall in 1998. The goal is the implementation of high-quality Unix software components, ranging from networking, multi-threading and algorithmic libraries to networking servers and development tools.
The ROOT System <LGPL>
The backbone of the ROOT architecture is a layered class hierarchy with, currently, around 310 classes grouped in about 24 frameworks divided in 14 categories. This hierarchy is organized in a mostly single-rooted class library, that is, most of the classes inherit from a common base class TObject. While this organization is not very popular in C++, it has proven to be well suited for our needs (and indeed for almost all successful class libraries: Java, Smalltalk, MFC, etc.).
libpts++ <LGPL>
library Posix Thread and Socket makes it possible to implement pThreads and Sockets in C++. It provided to users objects simple to use, similar to the model JAVA of Sun. It can be used under Linux and MS Windows.
Tntnet > Cxxtools <GPL>
Cxxtools is my library of unrelated, but useful C++ classes.
Event Listener <GPL>
EventListener is a simple and efficient C++ framework for propagating Events in graphical interfaces or numerical codes, using Listener pattern. Filtering and blocking of events is possible. This package does not use any other lib.
dKingyo Utility Toolkit <BSD, GPL, etc...>
C/C++言語用の基本的なデータ構造、アルゴリズム、MD5,SHA,RIPEMD,Rijndael,等の暗号化系、BlockSort,PPM等の圧縮系 DxLibでのゲーム開発サポートライブラリdxex及びWindows用のWin32APIをラップしたC++のライブラリ。各種BSD Licenseと相性の合うライブラリのラッパー等
And.org > Stablde Code <GPL/LGPL>
vstr, socket_poll, timer_q
dlib C++ Library <Boost Software License>
This project is a collection of various C++ classes. Included are Sockets, threading, GUI, and directory browsing API as well as many container classes and other items such as a big integer, arithmetic coder, and other compression related classes.
libUTL++ <GPL>
A C++ class library covering a wide range of highly re-useable abstractions and functionality.
ixlib <LGPL>
ixlib is a small c++ tools library based upon the standard template library.
libcore
"all in one(almost)" boost like library
CARL(C++ Advanced Runtime Library) <LGPL>
The C++ Advanced Runtime Library (CARL) is an alternative to the C/C++ standard libraries aiming at the high-level APIs and easy usage.
C++ Library for Windows <LGPL>
A C++ library for the Windows platform containing classes for MIME, video capture, socket, Windows registry, files, images, and other basic purposes.
vtl reflection <LGPL>
Reflection API for C++ language. The main characteristics are as follows: -no extra translator course needed to add introspection; -based on standard preprocessor directives and robust template mechanisms; -reflection for classes, methods and properties.
C/C++ Libraries (under GNU Lesser GPL) <LGPL>
Collection of C and C++ libraries, and C++ classes under the GNU Lesser General Public License. This collection includes all versions that are under the GNU LGPL, even if a newer version is available.
ASL(Adobe Source Libraries) / http://opensource.adobe.com / http://sf.net/projects/adobe-source <MIT>
The goal of ASL is to develop the technology necessary to construct commercial applications by assembling generic algorithms through declarative descriptions.
C++ bits <GPL>
Miscellaneous C++ code fragments
C++ Portable Types Library(PTypes) / http://freshmeat.net/projects/ptypes <zlib/libpng>
The C++ Portable Types Library (PTypes) is a simple alternative to the STL that includes multithreading and networking. It defines dynamic strings, character sets, variants, lists and other basic data types along with threads, synchronization primitives and IP sockets.
Cpp xFramework <GPL>
C++ framework inspired by the .Net framework class library Implements its own collection, net, io, text, forms, xml and regular expression classes
CVMLCPP(Common Versatile Multi-purpose Library for C++) <GPL>
The goal of the CVMLCPP project is to eliminate this redundancy by offering high-quality implementations of commonly needed functionality.
commonc++ <LGPL>
commonc++ is a C++ class library for developing cross-platform systems software for POSIX and Windows systems.
POCO(C++ Portable Components) <Boost Software License>
A collection of class libraries that simplify the development of network-centric, portable applications in C++ and integrate perfectly with the C++ Standard Library. Includes implementations of network protocols (HTTP,FTP, etc.) and an XML parser.
CodeZine > POCO::Foundationでデザインパターン
C/C++ Libraries <LGPL>
Collection of C and C++ libraries, and C++ classes under the GNU Lesser General Public License.
Folly(Facebook Open-source LibrarY) <Apache License V2.0>
Folly is an open-source C++ library developed and used at Facebook.
  • 関連書籍
ASIN:4894714353
円。

For C言語

Public-Domain C Library <Public Domain>
A minimal but fully ISO 9899:1989 / 1999 compliant C standard library framework in the Public Domain, with clean OS interfaces, as a starting point for OS / compiler development.
Atomix cross-platform C runtime library
Atomix is a portable cross-platform C runtime library that provides support for object-oriented programming with dynamic interface support, containers, networking, etc...
one advanced C library for UNIX and WINDOWS <GPL/IBM Public License>
Advanced C library(ACL) for UNIX-like OS, including sync/async iostream for network/file, thread pool, process pool, database pool, server framework, event, smart string, configure parser,dynamic array/hash/ring/list, http protocol lib, C unit test, etc.
mediaLib Libraries <CDDL>
Easily add multimedia and other functions of various precision levels to your applications running on UltraSPARC and x86 based systems and get improved performance too.
POSH(The Portable Open Source Harness) <BSD>
POSH is a simple, portable, easy-to-use, easy-to-integrate, flexible, open source "harness" designed to make writing cross-platform libraries and applications significantly less tedious to create and port.

商用

Rogue Wave® SourcePro® C++
The most trusted foundation to build enterprise C++ applications, Rogue Wave® SourcePro® C++ is a set of cross-platform C++ development components complete with documentation, source code and support that are designed with one goal in mind: to facilitate the delivery of effective C++ applications that are on time, on budget and work exactly to specification.
昔は Tools.h++ シリーズだったらしい。Tools.h++はSunStudio11のSPARC版にも付属する。

Template Library/Template Metaprogramming

For C++

Boost <Boost Software License>
別ページにまとめる
Loki / Loki Experimental
ASIN:4894714353
上記の本で紹介されているライブラリ。スマートポインタ等。
loki_setup(db)/update/patch
TTL(the Tiny Template Library)
The main objective is to develop a lightweight practical alternative to some of the Boost components.
Daixtrose(Differentiable EXpression Templates - the Reusable Open Source Engine) <LGPL>
Daixtrose ("Differentiable EXpression Templates - the Reusable Open Source Engine") is a C++ header library framework. With Daixtrose, building Expression Template (ET) libraries at home finally becomes easy.
Thread Safe Template Library
Thread Safe Template Library (TSTL) is a C++ library that provides thread-safe storage data structures without global locking.
OMPTL(OpenMP Multi-Threaded Template Library) / http://freshmeat.net/redir/omptl <LGPL>
The OMPTL reimplements the algorithmic and numeric parts of the Standard Template Library of C++ to take advantage of parallel computing hardware such as Dual-Core and HyperThreading processors.
JG Template Library <BSD>
A set of C++ containers, data structures, & utilities: Stack-based STL-like containers (StackVector, StackMap, etc.). Serialization, Interpolated Value, CircularBuffer, Quadtree, IntegralUnit, LocatedException
Eigen <LGPL/GPL>
Eigen is a C++ template library for linear algebra: vectors, matrices, and related algorithms.

For C言語

C Template Library <LGPL>
SQUAT/CTL is a platform independant macro template library for C/C++. It provides container, template, serialization and code generation patterns for the C/C++ language family based on C preprocessor macros.
Generic Standard Template Library for C <GPL/LGPL>
GCSTL is a port of the C++ Standard Template Library to the C programming language. This library is for developers that desire the functionality of lists, stacks, queues, sets, or maps when using the C programming language.

Container/Collection

link集/開発言語系/C++#Lib_STL
STLに関してはこちらのページを参照方。
link集/開発言語系/C++#Lib_Boost
Boostに関してはこちらのページを参照方。
The Code Project > Pretty Good Initialization Library
STLのコンテナの変数宣言時に初期値を突っ込もうという試み。

For C++

Circular List Class
C++ (ISO partial specialization required) List Classes. Supports: circular element iteration, sorting, *complex sorting: referencing external data, circular sort ranges, inverted sorting, reverse sorting*, const elements, fixed or dynamic capacity.
jjLibrary(jjPattern, jjErrno)
Two projects; new one is "Alan" a programming language. The other is "jjLibrary" a C++ library which provides
  1. jjPattern : Pattern-based container class (Hash, Tree, List, Graph)
  2. jjErrno : error handling
  3. jjCGI : CGI library.
STLplus C++ Library <BSD>
STLplus is a collection of reusable C++ components for developers already familiar with the STL. It contains abstract data types to extend the STL, reusable components, data persistence and portability components. The collection is general-purpose and portable between Windows and Unix platforms.
uSTL <MIT>
uSTL is a partial implementation of the STL that reduces code size by factoring memory management code into a non-template base class and deriving containers from it.
Aapl C++ Template Library <LGPL>
Aapl is a C++ template library for generic programming. It contains implementations of AVL Tree, Linked List, Vector, Binary Search Table and Sort.
BitMagic Library <MIT>
BitMagic - C++ library implementing dynamic bitvectors with several types of on-the-fly, adaptive compression. Designed for use in databases, search systems, scientific projects.
libwrapiter / http://libwrapiter.berlios.de <BSD>
This is the documentation for libwrapiter, a library that provides wrappers for C++ STL style iterators.
Stxxl(Standard Template Library for Extra Large Data Sets) <Boost Software License>
Stxxl is an implementation of the C++ standard template library STL for external memory (out-of-core) computations, containers, and algorithms that can process huge volumes of data that only fit on disks.
SEAL - Simple Easy And Lite C++ <GPL/MIT>
SEAL - A Simple Easy And Lite C++ library of common/day-to-day data structures and algorithms.
  • Array
Variable Array Library <LGPL>
Template Based on the standard vector library that allows creation of dynamically resizable two-dimensional arrays in C++ of most data types.
AVL Array <MIT>
Do you need a container for (A) random access? Then you need a vector, but don't abuse insert/erase; (B) insert/erase (wherever you want)? Then you need a list, but don't even try random access; (C) both? Choose avl_array! O(log n) for both!
ptr_vector <BSD>
ptr_vector<T> is a wrapper for Standard C++ vector<T*> that cuts one level of indirection for iterators and member functions. In essence, ptr_vector lets you treat a vector of pointers as if it were a vector of values.
Dame <Public Domain>
効率的なTrieの実装方法であるDouble-ArrayのC++ライブラリ。割合 http://citeseer.ist.psu.edu/aoe92efficient.html に忠実に作っています。
  • Tree
Darts(Double-ARray Trie System)
Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です. Double-Array は Trie を表現するためのデータ構造です. ハッシュ木, デジタルトライ, パトリシア木, SuffixTree による擬似 Trieといった 他の Trie の実装に比べ高速に動作します.
tree.hh - an STL-like C++ tree class <GPL>
The tree.hh library for C++ provides an STL-like container class for n-ary trees, templated over the data stored at the nodes.
きまぐれ日記 > tree.hh を使って木の操作
C++ AVL Tree Template
This document explains how to use the avl_tree template. Adelson-Velskii and Landis Balanced Binary Search Trees (or AVL Trees) are described in many good textbooks on fundamental data structures.
DataSoft Solutions > TCL(Tree Container Library) <URL>
The Tree Container Library (TCL), presented here, is a generic C++ tree container library which, not only works much like the STL, but is compatible with the STL algorithms and other STL containers.
libclaw <LGPL>
CLAW is a C++ Library Absolutely Wonderful providing useful classes from the simplest AVL binary search trees to the complex meta programming tools, including image manipulation, a generic alpha-beta algorithm, sockets implemented as std::stream and more
STX B++ Tree C++ Template Class <LGPL>
The STX B+ Tree package is a set of C++ template classes implementing a B+ tree key/data container in main memory.
  • Hash
Google Sparse Hash / http://sf.net/projects/goog-sparsehash <BSD>
An extremely memory-efficient hash_map implementation. 2 bits/entry overhead! The SparseHash library contains several hash-map implementations, including implementations that optimize for space or speed.
judyhash associative array <MIT>
The judyhash project provides C++ STL-like implementation for several associative arrays (maps) and sets based on unique algorithms and having a unique characteristics.

For C言語

G.A. Library <LGPL>
G.A. Library is a C library containing the most common algorithms available in the market: list, double-linked lists, queues, priority queues, stack, hash tables, and containers. This is a general and portable library written in ANSI C.
SGLIB - A Simple Generic Library for C. <GPL>
Sglib is a generic library for C that was inspired by the Standard Template Library from C++.
libscl <LGPL>
Simple, Small Container Library for C
GLib <LGPL>
GLib is a library containing many useful C routines for things such as trees, hashes, and lists. GLib was previously distributed with the GTK toolkit, but has been split off as of the developers' version 1.1.0.
adlib <LGPL>
a C library of fundamental algorithms and their data structures. It includes thread safe implementation of circular list, doubly linked list, stack, queue, deque and binary search tree.
Google C Generic Library <BSD>
The C Generic Library is a collection of data structures designed and created in as generic a fashion as possible. It contains doubly linked list, vector, deque, stack, queue, open and closed hash tables, and a binary tree structure, with list and vector based versions available for deque, stack, and queue.
Libc-X / http://sf.net/projects/libcx <LGPL>
Libc-X is an advanced library for C. Its purpose is to provide extensions to standard C library implementing useful and powerful data-structure and functions.
The first major version will be a stable implemention of those features :
  • List (simple chained), Queue, Stack, Hashtable (chained), Vector, Buffer stream, Ini file reading, Cache memory, Binary tree
CSTL <BSD>
CSTLは、C言語で使えるC++のSTLライクなコンテナライブラリです。vector, deque, list, set, multiset, map, multimap, stringを提供します。
Standard Portable Library <GPL>
The Standard Portable Library is a pointer friendly C/C++ STL replacement. The API similar to java or .NET and includes network and database support.
  • Array
丹下段平設計事務所 > vectorもどき
C Runtimeを使用した、STLのvectorもどき
General purpose dynamic array - Judy <LGPL>
Judy is a general purpose dynamic array implemented as a C callable library. Judy's speed and memory usage are typically better than other data storage models and improves with very large data sets.
  • List
SimCList / http://freshmeat.net/projects/simclist <BSD>
SimCList is a high quality C library for handling lists.
  • Tree
RumAVL - A Threaded AVL Tree Library <MIT/X>
RumAVL implements a Theaded AVL Tree in ANSI/ISO C. An AVL tree is a form of self-balancing binary search tree, as described by Adelson-Velskii and Landis.
  • Hash
CMPH(C Minimal Perfect Hashing Library) <LGPL/MPL>
Cmph is a free minimal perfect hash C library, providing several algorithms in the literature in a consistent, ease to use, API.
hashit <GPL>
hashit is a generic hash library that implements diverse collision handling methods.
uthash <BSD>
This is a hash, implemented in C, supporting constant-time add/find/remove of C structures. Any structure having a unique, arbitrarily-typed key member can be hashed by adding a UT_hash_handle member to the structure and calling these macros.
The GHT (Generic Hash Table) library <LGPL>
The GHT (Generic Hash Table) library is a hash table implementation in C for storing arbitrary types of data. It is meant to be small, easily extensible (in terms of hash functions etc), and easy to understand codewise.

暗号化

Crypto++ <Public Domain>
Crypto++ Library is a free C++ class library of cryptographic schemes.
Blowfish
内部データの暗号化を行う。C/C++/VB/Perl/Java/C# 用のソースが公開されている。
来犬的 - クルイヌチック > Program > BlowFishでファイル暗号化(WebArchive) - Blowfishの利用方法。
crypt_blowfish <Public Domain>
This is an implementation of a modern password hashing algorithm, based on the Blowfish block cipher, provided via the crypt(3) and a reentrant interface. It is compatible with bcrypt (version 2a) by Niels Provos and David Mazieres, as used in OpenBSD.
libdes <MIT>
トップページにも色々あり。
とってもごはん > コンピュータ技術関連 > SHA(Secure Hash Algorithm)
SHA-1, SHA-256, SHA-512のメッセージダイジェストを求めるプログラム及びそのソースコードの公開。SHA-512についてはMMXを利用する実装になっている模様。
SpiralCrypt Encryption Algorithm <LGPL>
Stream cipher with cyclic key. Tested with raw bitmaps, various weak keys, and hard to encode data. Tested via visual/histogram/statistical analyses. Includes check sum and file stat calculations, standard IO processing, shredding, random keys.
libmhash <LGPL>
Libmhash is a library that provides a uniform interface to several hash algorithms. It supports the basics for message authentication by following rfc2104 (HMAC). It also includes some key generation algorithms which are based on hash algorithms.
Botan <BSD>
Botan is a C++ library of cryptographic algorithms. It includes a wide selection of cryptographic algorithms (including AES, DES, SHA-1, RSA, and DSA, among many others). It also support X.509 certificates and several common certificate-related formats and protocols. It has a high level interface, is easily portable to most systems and compilers, and includes a substantial tutorial and API reference.
C++ Elliptic Curve library <GPL>
Libecc is an Elliptic Curve Cryptography C++ library for fixed size keys in order to achieve a maximum speed. The goal of this project is to become the first free Open Source library providing the means to generate safe elliptic curves.
hashlib++ <BSD>
hashlib++ is a simple and very easy to use library to create a cryptographic checksum (like MD5 or SHA1) called "hash" in C++. The library is written in plain C++ and should work with every compiler and platform.

Mathematics

Blitz++ / http://sf.net/projects/blitz <GPL/The Blitz++ Artistic License>
Blitz++ is a C++ class library for scientific computing which provides performance on par with Fortran 77/90. It uses template techniques to achieve high performance.
ベクトルや行列の演算の為のライブラリ。
Octave C++ <GPL>
GNU Octave is a high-level language, primarily intended for numerical computations.
ACML(AMD Core Math Library)
並列演算向けっぽい。
IT++
IT++ is a C++ library of mathematical, signal processing, speech processing, and communications classes and functions.
多倍長精度整数クラス CBignum
CBignum は Win32 用の(メモリの許す限りの)長桁整数クラスです.多くの演算子をオーバーロードしているので,C++プログラムで簡単に長桁整数を取り扱うことが可能になります.
Tochnog Finite Element Program <GPL>
Explicit/Impicit Finite Element Program with linear/nonlinear, elastic/hyperelastic/hypoelastic/plastic/visco, contact,thermal, fluid capabilities. h/p refinements. Parallel/Distributed solvers available. No shell elements but has 2D beams, trusses.
Complex Number Class <GPL>
A complex number class to deal with complex numbers. It will add, subtract, mutiply, divide, and raise to a complex number to a power. It also has overloaded input and output streams to print and input complex numbers.
  • SIMD(Single Instruction Multiple Data)
libSIMD(The Single Instruct Multiple Data Library) <LGPL>
Mathematical library utilising SIMD features of common processors to accelerate many commonly-used algorithms where compilers fear to tread.
Universal SIMD-Mathlibrary <GPL>
Standard functions for single precision floating point vector datatypes are provided for the SIMD-platforms x86 (SSE2), PowerPC and Cell. In most cases, speed and/or accuracy compare favourable with existing SIMD-libraries (MacOS Accelerate Framework, Cell SDK).
  • 参考情報
The Object-Oriented Numerics Page
海外サイト。各種数値演算ライブラリへのリンク集。
Mathtools.net
C/C++, Java, VisualBasic, Fortran向けのライブラリへのリンク集。
IBM developerWorks > Linux > C、C++ 用行列ライブラリー
Meschach、Cooperware matrix、Blitzの評価と比較

行列

Techsoft Matrix TCL Pro/Lite
C++用の行列計算クラスライブラリ。Pro版は有償。
行列演算ライブラリの使い方 - 利用サンプル。
MTL(The Matrix Template Library)
行列計算クラスライブラリ。
tvmet(Tiny Vector Matrix library using Expression Templates)
行列計算クラスライブラリ。
exmat(The Expression Template Matrix Library)
The element type of the matrix is generic, it can be any type of the C++ build-in type like int, float, double.
Other types like complex or arbitrary precision type can also be used as the element type.
Matrix expression can be make up of any element type, that is, an integer matrix can be added to a float matrix and then assign to a double matrix.
Meta Matrix Library <BSD>
The Meta Matrix Library is a modular designed collection of C libraries. It was developed as part of the Free Finite Element Package to provide easy and consistent access to numerical linear algebra software for sparse and dense matrices.
Intel® Pentium®III Processor > The Small Matrix Library (SML)
The Small Matrix Library (SML) is an implementation of common matrix and vector operations specifically optimized for Intel® Pentium® II and Intel® Pentium® III architecture. The library Includes C++ classes for matrices and vectors with sizes varying from 1x1 to 6x6; low-level functions from the library may be used directly in programs written in the C language. C++ classes include overloaded functions for such common operations as addition, subtraction, multiplication, etc. with very low overhead.
The CwMtx library for matrix, vector and quaternion math <LGPL>
CwMtx is a library I wrote in C++ that provides the matrix and vector operations that are used extensively in engineering and science problems.
GMM++ <LGPL>
GMM++ is a generic C++ template library for sparse, dense and skyline matrices. It is built as a set of generic algorithms (mult, add, copy, sub-matrices, dense and sparse solvers ...) for any interfaced vector type or matrix type.
MAT - Math Library <MIT/X>
MAT is a C++ mathematical template class library.
ヘッダーファイルのみで行列計算が利用可能。
NT2 <LGPL>
NT2 is a multi-platform C++ library providing various template matrix classes that can be used with a Matlab(tm) like syntax whose performances are close to those obtained with hand written C code. NT2 comes with various numerical toolboxes.

乱数

link集/ProgrammingTechnology#Algorithm_Random
別ページに移動。

人工衛星軌道

link集/GIS系#Lib
別ページに移動。

数式Parser

CWMP(C/C++ Written Math Paser) <GPL>
CWMP is a platform-independent parser for mathematic expressions. It is able to calculate a function's derivative automatically. CWMP only uses the STL elements of the C++ programming language.
muParser <MIT>
muParser is an extensible high performance math parser library. It is based on transforming an expression into a bytecode and precalculating constant parts of it.

Algorithm

Wavelet - http://sf.net/projects/wavelet <GPL>
Wavelet, a C++ class library for Wavelet transforms on images.
FFTW <GPL>
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).
LibAran <LGPL>
LibAran is a 2D/3D Fast Multipole Method software library. Distributed under the GNU LGPL, it provides a C API to allow developers to use such algorithms in their own applications.
BIAS(The Basic Image AlgorithmS C++ Library) <BIAS License>
The Basic Image AlgorithmS C++ Library is the base for research at the Multimedia Information Processing Group at Kiel University, Germany featuring image processing related algorithms, e.g.
  • basic image i/o for ppm/pgm (or more if imlib/imagemagick available)
  • feature extraction, tracking and image filtering
  • projective geometry and representation of mathematical entities
  • non-robust(in the sense of "outliers") estimation algorithms, e.g. for fundamental matrix
  • basic mathematical tools, e.g. for linear equation systems and minimization, RANSAC
CGAL(the Computational Geometry Algorithms Library) <LGPL/QPL>
The goal of the CGAL Open Source Project is to provide easy access to efficient and reliable geometric algorithms to users in industry and academia in the form of a C++ library.
Wykobi <GPL>
Wykobi is an efficient, robust, and simple to use multi-platform 2D/3D computational geometry library. Wykobi provides a concise, predictable, and deterministic interface for geometric primitives and complex geometric routines using and conforming to the ISO/IEC 14882:2003 C++ language specification.
GSL(GNU Scientific Library) <GPL>
The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The complete range of subject areas covered by the library includes,
Complex Numbers, Roots of Polynomials, Special Functions, Vectors and Matrices, Permutations, Sorting, BLAS Support, Linear Algebra, Eigensystems, Fast Fourier Transforms, Quadrature, Random Numbers, Quasi-Random Sequences, Random Distributions, Statistics, Histograms, N-Tuples, Monte Carlo Integration, Simulated Annealing, Differential Equations, Interpolation, Numerical Differentiation, Chebyshev Approximation, Series Acceleration, Discrete Hankel Transforms, Root-Finding, Minimization, Least-Squares Fitting, Physical Constants, IEEE Floating-Point, Discrete Wavelet Transforms
ObjCryst++ Crystallographic C++ Library
ObjCryst++ : object-oriented Crystallographic Library, for the analysis of Crystal structures from scattering experiments: optimized scattering computation, Graphical interface for structures and data, global optimization algorithms.
  • 遺伝的アルゴリズム
GAlib
A C++ Library of Genetic Algorithm Components
VIGRA <The VIGRA Artistic License>
VIGRA stands for "Vision with Generic Algorithms". It's a novel computer vision library that puts its main emphasize on customizable algorithms and data structures.
FGA(Fast Genetic Algorithm) <LGPL>
FGA - Fast Genetic Algorithm is a clean implementation of a simple yet general genetic algorithm to solve optimization problems and build artificial life simulations. The library provides more than one variant of crossover and selection procedures.

画像

link集/規格物#FileFormat
ファイルフォーマット関連はこちらのページを参照方。
link集/ProgrammingTechnology#Algorithm
画像処理アルゴリズムの解説・情報はこちらのページを参照方。
link集/GIS系#Lib_CPP
地図関連はこちらを参照方。
link集/DICOM#Library
DICOM画像関連はこちらを参照方。

個別フォーマット向け

libjpeg
JPEG(Joint Photographic Experts Group)画像用のライブラリ。リリースバージョン番号からjpeg-6bとも呼ばれる。
ソフトウェア工房α - jpeg-6bのWin32版約2倍高速SIMD(x86)版の公開や日本語マニュアルの公開等を行っている。
libtiff
TIFF(Tag Image File Format)画像用のライブラリ。国土地理院の数値地図はこの形式で提供される。
Tiff for Windows
libpng / http://sf.net/projects/libpng
PNG(Portable Network Graphics)画像用のライブラリ。
libmng
MNG(Multiple-image Network Graphics)画像用のライブラリ。
Intel® JPEG Library(Web Archive)
以前は無償公開されていた、Intelがlibjpegを元に最適化を行ったライブラリ。
現在はIntel® IPP(Integrated Peformance Primitives)として販売されている。
とりあえず、ここから(ijl15.exe)Download出来る模様。
OpenJPEG <BSD>
OpenJPEGライブラリはC言語によって書かれたオープンソースなJPEG 2000のコーデックです。
EasyBMP <LGPL>
EasyBMP is a simple, cross-platform C++ library designed for easily reading, writing, and modifying Windows bitmap (BMP) image files.
Exiv2 <GPL>
Exiv2 comprises of a C++ library and a command line utility to access image metadata. Exiv2 is free software.
wxSVG <wxWindows Library Licence>
wxSVG is C++ library to create, manipulate and render SVG files.
libteo
TEOプロジェクトとは,画像処理研究用の画像フォーマット,および,その画像フォーマットをC言語で扱うためのライブラリを作成することを目的として発足したプロジェクトです。
TEOライブラリによる画像処理プログラミングガイド
Embedded JPEG Codec Library <GPL>
It is an open source JPEG codec library, including both encoder and decoder. To be aware of the need of embedded systems, it is going to be compact and easy to be ported to various embedded OS, ESL tools like Handel-C, multi-processor systems and FPGA.
The JasPer Project <JasPer License Version 2.0>
The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).
libPGF(Progressive Graphics File) <LGPL>
libPGF contains an implementation of the Progressive Graphics File (PGF). which is a new image file format, that is based on a discrete, fast wavelet transform with progressive coding features. PGF can be used for lossless and lossy compression.

多様フォーマット対応

GD Graphics Library (旧サイト)
PNG/JPEG/WBMP/GIF画像の読み書き/変換を行う事ができるライブラリ。
GD ライブラリの日本語化パッチ - 日本語フォントを扱う際の不具合を解消するパッチの提供を行っている。
Intel® IPL(Image Processing Library) (Web Archive)
以前は無償公開されていた各種画像処理を行う為のライブラリ、各種イメージをIPLの内部形式に変換する必要がある。
現在はIntel® IPP(Integrated Peformance Primitives)として販売されている。
とりあえず、ここから(ipl25.exe)Download出来る模様。ここにも。以前Intelから ipl25-sp1.zip が公開されていたが現在公開している所はなかなか見つからない・・・。
OpenCV(Intel Open Source Computer Vision Library) <BSD>
This library is mainly aimed at real time computer vision. ライブラリ内部でIPLを利用している。
opencv.jp
STL like OpenCV wrapper <BSD>
Aims of this Project are 1. Integrating various Vision, Machine learning library based on OpenCV. 2. Providing various function based on the integrated library. 3. Using OpenCV with template based STL like code
作者のお方のHomepage
The Code Project > STL like template based coding with the MMX/SSE extension
SGI - Image Format Library™(IFL)
The Image Format Libary (IFL) is an Application Programming Interface (API) designed for reading and writing image files in a file format independent fashion.
paintlib
paintlib is a portable C++ class library for image loading, saving and manipulation.
Images can be loaded from BMP, GIF, IFF, JPEG, PCX, PGM, PICT, PNG, PSD, SGI, TGA, TIFF and WMF files and saved in BMP, JPEG, PNG and TIFF formats. Image manipulation can be done either through filters implemented in filter classes or by directly accessing the bitmap bits. Full C++ source is provided.
FreeImage <GPL/FIPL>
FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications.
Thanks to it's ANSI C interface, FreeImage is usable in many languages including C, C++, VB, C#, Delphi, Java and also in common scripting languages such as Perl, Python, PHP, TCL or Ruby.
The CImg Library <CeCiLL License(Free Software)>
The CImg Library is an open source C++ toolkit for image processing. It provides simple classes and functions to load, save, process and display images in your own C++ code.
LTI-Lib (C++ Computer Vision Library) <LGPL>
The LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. LTI-Lib is an object oriented computer vision library written in C++ for Windows/MS-VC++ and Linux/gcc.
UBitmap <BSD>
画像処理、画像解析をするソフト、参考書は、いっぱいあります。ですから、画像処理ソフトやライブラリを作る必要はありません。しかし、ソフトに画像処理ルーチンを組み込むときなど利用しにくいことがあります。そこで、画像処理クラス&ソフトを作ることにしました。
Camellia Image Processing Library <BSD>
Written in plain C, it is cross-platform (Unix / Linux, Windows) and robust. It already includes a lot of functions for image processing (filtering, morphological mathematics, labelling, warping, loading/saving images, etc.), most of them being highly speed-optimized. As it uses the IplImage structure to describe images, it is a good replacement to the popular but discontinued Intel IPL library and a good complement to the OpenCV library.
DevIL(Developer's Image Library)/OpenIL <LGPL>
Developer's Image Library (DevIL) is a cross-platform image library utilizing a simple syntax to load, save, convert, manipulate, filter and display a variety of images with ease.
  • 関連書籍
ASIN:4839931593
OpenCV プログラミングブック
実践OpenCV―映像処理&解析
ASIN:4873114136
Essential OpenCV Programming―With Visual C++ 2008
OpenCVで始める簡単動画プログラミング
ASIN:4877832335

加工・幾何学変換

ALE(Anti-Lamenessing Engine) <GPL>
ALE is an image-processing program used for tasks such as image mosaicking, super-resolution, deblurring, noise reduction, anti-aliasing, and scene reconstruction. Its principle of operation is synthetic capture, combining multiple inputs representing the same scene.
AGG(Anti-Grain Geometory) <AGG License>
Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, written in industrially standard C++. Basically, you can think of AGG as of a rendering engine that produces pixel images in memory from some vectorial data.
libpano12 / Pano12.dll <GPL>
パノラマ画像作成。内部的に 画像処理アルゴリズムライブラリのVIGRA を使用している。
Image restoration and inpainting <BSD>
Image Restoration and Inpainting: MinGW/OpenGL/Visual c++/Java image processing project about enhancing, restoring, detecting/recovering parts of images(Old painting cracks...) Fast Restorarion, 2D (Un)Splitted Solver, Barzilai,CG,Krylov(Ax=b)morphology
GEO(Geometric Library) <MIT/X>
GEO is a C++ geometric template class library. Use this library for your graphical, image processing, or scientific applications.
MIST(Media Integration Standard Toolkit)プロジェクト <BSD style>
音声と画像のメディア統合を支援する標準ライブラリを目指しています.別に,音声のみや画像のみでも使えるライブラリです.音声・画像にかかわる研究をしようとした場合,研究に必要となるアルゴリズムを収集しなくてはならないことが多々あります.そこで,そのようなアルゴリズムをできるだけ網羅的に集め(計算性能や精度なども含めて),皆さんに提供しようというものです.特に,これまで名古屋大学で開発されたアルゴリズムを重点的に集めるつもりです.

動画

libmpeg3 <LGPL>
Libmpeg3 supports advanced editing and manipulation of MPEG streams. It was started in Fall of 1999 as the first MPEG library with frame accurate seeking, MPEG-2 decoding, AC3/A52 decoding all integrated behind a single interface.
FFmpeg/libavicodec
FFmpeg is a complete solution to record, convert and stream audio and video. It includes libavcodec, the leading audio/video codec library.
VideoLAN x264 - a free h264/avc encoder <GPL>
x264 is a free library for encoding H264/AVC video streams.
PHANTASIA.NET - x264の派生版の日本語化パッチの公開。
AVI file support library <GPL/LGPL>
Avifile is a library that allows you to read and write compressed AVI files (Indeo? Video, DivX, etc.) under x86 Linux. (De)compression is performed with Win32 DLLs. It includes AVI player, video4linux-compatible capture program and simple AVI recompres
MAlib <LGPL>
'MAlib' は、メディア解析(Media Analysis)、動物体認識(Motion Analizing)、映像アーキテクチャ(Movie Architecture)、メディア構築(Media Authoring)を目的とした、C言語オープンソースライブラリです。
Bento4 portable MP4 file format library <GPL>
Portable C++ Class Library for parsing and creating ISO MP4 (ISO 14496-12, 14496-14 and 14496-15) multimedia files containing MPEG-4 or other types of multimedia streams, such as iTunes .mp4 or other quicktime files.
Adobe Labs > Alchemy
Alchemy is research project that allows users to compile C and C++ code that is target to run on the open source ActionScript Virtual Machine(AVM2).

音声

OpenAL <LGPL>
OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.
FMOD <URL>
FMOD is a cross platform audio library and toolset to let you easily implement the latest audio technologies into your title.
RtAudio
RtAudio is a set of C++ classes which provide a common API (Application Programming Interface) for realtime audio input/output across Linux (native ALSA, JACK, and OSS), Macintosh OS X, SGI, and Windows (DirectSound and ASIO) operating systems.
  • 関連書籍
ASIN:1584503831

Format/CODEC

OpenH323 <MPL 1.0>
The OpenH323 project aims to create a full featured, interoperable, Open Source implementation of the ITU-T H.323 teleconferencing protocol that can be used by personal developers and commercial users without charge.
Xiph.org > Ogg Vorbis <BSD>
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel. This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC.
Speex - a free codec for free speech / http://sf.net/projects/speex <BSD>
Speex is an Open Source/Free Software patent-free audio compression format designed for speech.
WAVE Utilities <GPL>
WAVE Utilities is a set of three programs for dealing with WAVE format audio files.
GuruGuruSMF.dll
GuruGuruSMF.dllとは、主にC++環境上においてスタンダードMIDIファイルをBGMとしてループ演奏させるためのdllです。
BASS <商用/非商用>
BASS is an audio library for use in Windows and Mac OSX software. Its purpose is to provide developers with the most powerful and efficient (yet easy to use), sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a tiny DLL, under 100KB* in size.
SoX(Sound eXchange) <LGPL>
SoX is meant to be the Swiss Army Knife of sound processing utils. It can convert audio files to other popular audio file types and also apply sound effects and filters during the conversion.
  • MP3
LAME <LGPL>
LAME is an LGPL MP3 encoder. The Open source development model allowed to improve its quality and speed since 1999. It is now an highly evolved MP3 encoder, with quality and speed able to rival state of the art commercial encoders.
午後のこ〜だ <LGPL>
WAVEデータ、AIFFデータなどの音声データのうち、無圧縮なものを MPEG-AUDIO 音声ストリームに変換するためのソフトウェアです。
  • Link集へのLink
Musicdsp.org
Musicdsp.org is a collection of data, gathered for the music dsp community.

SpeechAPI(SAPI)

Julius / http://sourceforge.jp/projects/julius <URL>
Julius/Julianはフリーの高性能音声認識ソフトウェアです。数万語の語彙を対象とした文章発声の認識を行う能力を持ちます。
Galatea(ガラテア) Project / http://sourceforge.jp/projects/galatea
Galatea Project は、擬人化音声対話エージェントのツールキット Galatea Toolkit を開発し、オープンソース、ライセンスフリーで公開提供するプロジェクトで、国内の十数大学などの音声・言語・画像研究者が参加して進めています。また、構成要素(音声認識、音声合成、顔画像合成など)を別々に無償で利用することもできます。商用利用も可能です。
OpenVXI <The ScanSoft Public License>
OpenVXI is a portable open source library that interprets the VoiceXML dialog markup language (www.voicexml.org). It closely follows the VoiceXML 2.0 draft specification, avoiding proprietary extensions of any kind.
NHK放送技術研究所 > TVML(TVprogram Making Language) > TVMLの外部制御モード
TVML PlayerII には、スクリプトを入力し番組として再生するという使い方のほかに、TVML Player II を用いたアプリケーション開発が出来るよう、TVML Player II を外部から制御するための外部制御ライブラリTvIFを提供しています。TvIFを使用することにより、TVML Player II を用いたさまざまなインタラクティブアプリケーションを開発することができます。
The Festival Speech Synthesis System <X>
Festival offers a general framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech through a number APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface. Festival is multi-lingual (currently English (British and American), and Spanish) though English is the most advanced. Other groups release new languages for the system. And full tools and documentation for build new voices are available through Carnegie Mellon's FestVox project ( http://festvox.org ).
有限会社 アクエスト > AquesTalk - 日本語規則音声合成ライブラリ <URL>
AquesTalk 規則音声合成ライブラリは、テキスト情報を音声波形に変換出力するライブラリです。AquesTalkは、簡単にシステムに組み込めることを第一目標として開発しました。このライブラリを使えば、様々なアプリケーションに簡単に音声メッセージを追加できます。営利、非営利にかかわらず無償で使用でき、製品に組み込んで販売することも可能です。
  • 関連書籍
ASIN:3540008675
税込 円
フリーソフトでつくる音声認識システム パターン認識・機械学習の初歩から対話システムまで
税込 ¥ 6,965円

GIS(Geographic Information System)

link集/GIS系
別ページを参照方。

Debug

The C++ Debugging Support Library <GPL>
Keywords: Debugging C++. Thread-safe. Ostream based debug output. Source file and line number locations. Printing demangled types and symbol names. Custom debug channels and devices.
libebt <修正BSD>
The libebt library provides a clean way of getting human-readable backtrace messages in C++. It uses the RAII (resource acquisition is initialisation) idiom to manage backtrace stack items without needing macros, control structures or an external debugger -- adding context to a function or block is done through a single simple variable declaration.
Libsafe
Libsafe has demonstrated its ability to detect and prevent several known attacks, but its real benefit, we believe, is its ability to prevent yet unknown attacks.
バグベアード -bugbeard-
簡潔かつ乱暴に説明すると、このモジュールは printf デバッギングを簡単且つゴージャスに行う為のものです。 バグベアードはC++プログラマの目となり、その膨大なログで大半のバグを丸裸にします。

ログ

log4cxx
Apacheのプロジェクトの1つ。
log4c
log4jベース。
log4cpp
log4jベース。
log4cplus
log4jベース。
liberror - Message Printing
This is a library for C and C++ that solves the allegedly simply task of printing messages. Thus, it is essentially a feature-rich substitute for fprintf(stderr,...).
slogcxx <LGPL>
slogcxx is a simple C++ logging library for debugging and tracing. It's meant to be easier to use than log4j-based systems.
Pantheios - The C++ Logging Sweetspot <BSD>
A C++ logging API that is simple to use, 100% type-safe, generic, extensible, atomic, platform-independent, and highly efficient. And, best of all, it upholds the spirit of C: you only pay for what you use.
google-glog <BSD>
The glog library implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros.
loglite - A small logging library <LGPL>

文字処理

HTML To RichText Helper Library
このライブラリは,HTML 風の文法で書かれたテキストデータをリッチテキストコントロールに反映させるライブラリです.
CHISE(CHaracter Information Service Environment) > libchise <LGPL>
CHISE (CHaracter Information Service Environment) プロジェクトは世界のさまざまな文字に関する知識をデータベース化するとともに、そのデータベースをさまざまな形で利用する新しい文字処理アーキテクチャを開発するものです。
libucd / http://freshmeat.net/projects/libucd <MIT/X>
libucd is a C library interface to the Unicode Character Database, which contains properties of all the Unicode characters.
SimString <BSD>
SimStringは,類似文字列検索のための高速かつシンプルなライブラリです.類似文字列検索とは,文字列集合(データベース)の中から,クエリ文字列との類似度が閾値以上のものを,見つけ出す操作です.クエリ文字列と完全に一致しなくても,データベース中の似ている文字列を検索することができるので,スペル訂正,あいまい計算,柔軟な辞書マッチング,重複レコード検出,データベース統合など,様々なアプリケーションを構築できます.
  • string
Libmib Allocated String Functions
Libmib astrings implement a fast, efficient "limitless" string. Use astrings in place of fixed length string buffers, which are a common area of software defects causing operational or security failure.
cstring <BSD>
cstring is a small and simple C library for the definition and manipulation of expandable C-style strings. Strings are represented as instances of the cstring_t structure, and manipulated by the library's functions.
The Strinx Library <MIT>
Strinx is a general-purpose string library, written in C++, using modern template approach. It is designed to be efficient, simple and easy to use.
ustr / http://freshmeat.net/projects/ustr <BSD/LGPL/MIT>
ustr (Micro string library) is a string API for C. It has tiny overhead over just plain strdup(), is much safer, is easier to use, is faster for many operations, can be used with read-only or automatically allocated data. You don't even need to link to the library to use it (so there are no dependencies).
SafeStr
The goal of the SafeStr library is to provide a rich string-handling library for C that has safe semantics yet interoperates with legacy library code in a straightforward manner.
The AMD String Library
The AMD String Library provides standard GNU C Library (glibc) string functions optimized for AMD processors. The AMD String Library contains optimized versions of ffsll, strchr, strrchr, memchr, strlen, and strnlen functions.
  • Terminal制御
Ncurses(new curses)
ncurses (new curses) は、System V Rel 4.0(及びそれ以前)のcursesのフ リーなソフトウエアエミュレーションです。ncursesは、terminfo型式を使用し、パッド、カラー、複数のハイライト、フォーム文字、ファンクションキーマッピングをサポートします。
UTIO(Useful Terminal I/O Library)
This Useful Terminal IO library is a C++ alternative to ncurses for working with terminfo-defined terminals.
uSTLを使用して実装されている。
SVGALib(SuperVGA Graphics Library)
SVGAlib is a low-level graphics library for Linux. It augments the C programming language, which doesn't provide support for graphics.

日本語

形態素解析システム 茶筌(ChaSen) > libchasen / ChaSen legacy
茶筌システムは,広く自然言語処理研究に資するため無償のソフトウェアとして開発されたものである.茶筌の著作権は,奈良先端科学技術大学院大学情報科学研究科自然言語処理学講座(松本研究室)が保持する.
和布蕪(MeCab)
MeCab は 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所共同研究ユニットプロジェクト の一環として開発されたオープンソース形態素解析エンジンです. 言語,辞書,コーパスに依存しない汎用的な設計を基本方針としています. パラメータの推定にConditional Random Fields(CRF)を用いており, ChaSenが採用している隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します.

文字コード変換

Microsoft Layer for Unicode on Windows 95, 98, and Me Systems / ダウンロード
The Microsoft Layer for Unicode on Windows 95, 98, and Me systems (MSLU) helps to provide a layer over the Win32 API on Win9x so that you can write a single Unicode*2 version of your application.
Opencow - Open Layer for Unicode <GPL/LGPL/MPL>
An open-source friendly replacement library for the Microsoft Layer for Unicode. This library allows a unicode Windows application to run unchanged on all versions of Windows, including Windows 95, 98 and ME.
libiconv / http://sf.net/projects/libiconv <LGPL>
libiconv is for you if your application needs to smultiple character encodings, but that support lacks from your system.
KaoriYa > がらくた置き場 > Libiconv DLL for Windows - libiconvをDLL化したものを公開
XUnicode <Public Domain>
The easy to use library for Unicode support
imdkcvlib <URL>
imdkcv はテキストファイルの漢字コードの変換を行うフリーソフトウェアです.現在対応している漢字コードは Shift JIS, JIS (ISO-2022-JP-2), EUC-jp, UCS-4, UTF-7, UTF-8, UTF-16 ( Unicode, UCS-2 ) です. UCS-4 と UTF-16 はビッグ・リトルエンディアンに対応しますが 0x22114433, 0x33441122 のようなエンディアンには対応してません。なお,JISX0213 の Shift JIS, JIS(ISO-2022-JP-3), EUC-jp には対応していません.
libutf8 - a Unicode/UTF-8 locale plugin <LGPL>
This library provides UTF-8 locale support, for use on systems which don't have UTF-8 locales, or whose UTF-8 locales are unreasonably slow.
m17n library <LGPL>
The m17n library は、多言語テキストをM-textと呼ばれる特別なオブジェクトで表現します。M-textはテキストプロパティと呼ばれる属性付きの文字列であり、Cの文字列に相当します。テキストプロパティは、文字列に入力、表示、編集に必要な情報を付加します。
iconvmlang <MIT>
iconvmlangはlibiconvおよびgettextとAPIレベルで互換性があるWindows用プログラムです。純正のiconv.dll、intl.dll、msgfmt.exeをiconvmlang-x.y.z.zipに含まれるiconv.dll、intl.dll、msgfmt.exeに置き換えて使って下さい。
  • for C++
libUniCodePlus <GPL>
UniCode C++ library, a replacement for libunicode. This library allows to use / create multiple code pages, convert to HTML, using the latest UniCode version as reference. Maximum flexibility and re-usability.
TrickLibrary > C++ > extra > バベル
バベルは各種文字コード... シフトJIS, JIS, EUC, UNICODE(UTF8, UTF16, UTF32) ...を変換するモジュールです。現段階でもほとんど問題なく利用できると思いますが、このモジュールは現在はまだベータです。
やる気向上作戦 > EncodingConversion > encconv.h
文字コードをありあわせのもので変換してみる。
  • Windowsでは、IE付属のmlang.dll
  • Linuxでは、iconv
  • for C言語
ICU4C(International Components for Unicode)(旧サイト) <X/MIT>
ICU is a mature, widely used set of C/C++ and Java libraries for Unicode support, software internationalization and globalization (i18n/g11n).
libunicows <MIT>
libunicows contains independent implementation of the import library. It can be used with any C compiler (although it was only tested with Mingw32, MSVC and Borland compilers so far) and is released under the Open Source MIT license (this permits you to link the library into your executable without any restrictions).
MisticWALL > wkf
漢字コード変換フィルタと C プログラム用漢字コード変換ライブラリです。
nkf32.dll / @Vector
nkfはネットワークでメールやニュースの読み書きをするために作られた、漢字コードの変換フィルタである。

正規表現

jre.dll
jre.dllとはWindows上で動作する正規表現ライブラリです。
BREGEXP.DLL
Perl5互換の正規表現エンジン。インプリメントするにはあまりに面倒な正規表現の4つの機能をAPIで提供。C++やVisual Basicから使えます。Linux版もあります。
bregonig.dll
Tatsuo Baba氏による正規表現ライブラリである Bregexp.dll 互換の正規表現ライブラリです。Windows アプリで Perl 互換の正規表現が使えるようになります。正規表現エンジンとして鬼車(Oniguruma)を採用することにより、オリジナルの Bregexp.dll よりも高度な正規表現を使用できるようになっています。
鬼車(Oniguruma) <BSD>
Oniguruma is a regular expressions library. The characteristics of this library is that different character encoding for every regular expression object can be specified.
OnigPP <ラッパー部はPublic Domain>
Kosako様作マルチバイトエンコーディング対応正規表現ライブラリ「Oniguruma」のスレッドセーフ化したもの+C++ラッパー。Win32専用。
サイトー企画 > HmJre.dll - 正規表現/あいまい検索DLL
HmJre.dllは、任意のアプリケーションソフトに正規表現での検索やあいまい検索の機能を付加するためのDLL(Dynamic link library)です。主にC言語でソフト開発している人向けの、ソフトウェア部品です。
PCRE(Perl Compatible Regular Expressions) <BSD>
The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API.
Regular Expression Component Library <Freeware>
The Regular Expression Component Library is a free component that enables the use of regular expression searching in a C++ program. VC++6.0〜7.1、BCC3〜6に対応。
TRE <LGPL>
TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching.
T-Rex <zlib/libpng>
T-Rex is a minimalistic regular expression library written in ANSI C, supports the following POSIX expressions: ?,*,+,^,$,.,[a-b],() plus the perl style greedy closures {n} . It can be conditionally compiled to support 8-bits or 16-bits character strings.
C++ Regex Engine / http://freshmeat.net/projects/cpp_regex <GPL>
C++ Regex Engine provides a robust regular expression library for use in C++. The syntax of the regular expression language is very close to the Perl 5 standard. The classes given somewhat mirror those found in Java's regular expression library, but have several improvements.
Google RE2 <BSD>
RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.

Parser

DOTCONF++ library <LGPL>
dotconf++ is a dotconf like configuration file parser written in C++. It supports macro substitution from the environment or from the file itself, config file inclusion, easy handling of XML like tags, checking for required tags, and more.

Command Line Options

popt <MIT/X>
The popt library exists essentially for parsing command line options. Some specific advantages of popt are no global variables (allowing multiple passes in parsing argv), parsing an arbitrary array of argv-style elements (allowing parsing of command-line- strings from any source), a standard method of option aliasing, ability to exec external option filters, and automatica generation of help and usage messages.
Tsutomu Inamoto's Home Page > 便利なUNIXツール - poptの解説
argtable <LGPL>
Argtable is an ANSI C library for parsing GNU style command line options with a minimum of fuss. It enables a program's command line syntax to be defined in the source code as an array of argtable structs.
C++ command line arguments parser <zlib/libpng>
CLArgs is a command line arguments parser for C++ with a flexible end user syntax. For example a copy command using CLArgs could be run as "copy -TO dest.txt src.txt" or "copy src.txt dest.txt" or "copy -FROM src.txt -TO dest.txt" etc.
Arg_parser <GPL>
Arg_parser is an argument parser that follows POSIX and GNU conventions for command line arguments. It is implemented as a C++ class, and is simpler, easier to use, and safer that "getopt_long". Arg_parser does not modify its arguments, nor uses any global variables.
Command Line Parser: GetPot <LGPL>
Powerful command line and configuration file parsing for C++, Python, Ruby and Java (others to come). This tool provides many features, such as separate treatment for options, variables, and flags, unrecognized object detection, prefixes and much more.
The Code Project > XGetopt - A Unix-compatible getopt() for MFC and Win32
The Code Project > Simple command line processing

XML(eXtensible Markup Language)

Apache Xerces C++ Parser <Apache License V2.0>
XML Parser。Apache XML Projectの一つ。発音は XercesとXalanの読み方(WebArchive) が参考になる。
libxml++ <GPL/LGPL>
libxml++ is a C++ wrapper for the libxml XML parser library. It has SAX and DOM-like APIs, but does not attempt to conform exactly to the DOM specifications because they are not aimed at C++. Its API is much simpler than the underlying libxml C API.
expatpp C++ wrapper for expat - XML Parser Toolkit <MPL 1.0>
Expatpp is an Original Work which works with Expat, Copyright© 1998, 1999 James Clark. See expat FAQ for more details on expat.
MiX(Minimalists XML parser) <Apache License V2.0>
日本発のXMLパーサ。
TinyXML / http://sf.net/projects/tinyxml <zlib/libpng>
TinyXml is a simple, small, C++ XML parser that can be easily integrating into other programs.
TiCPP(TinyXML++) <MIT>
It is a completely new interface to TinyXML that uses MANY of the C++ strengths.
Microsoft XML Developer Center(日本) / Microsoft XML Developer Center
XML Developer Center では、XML に関する基本情報から応用例まで様々な話題について紹介いたします。
Microsoft XML パーサー(MSXML) のバージョン一覧, What's New in MSXML, MSXML API History
MSXML3 SP7 SDK
MSXML4 SP2 SDK
MSXML6 SDK
PerfectXML > MSXML > C++ Samples(WebArchive)
Microsoft XmlLite
リファレンス解説
irrXML <The irrXML License>
irrXML is a simple and fast open source xml parser for C++. Why another xml parser? The strenghts of irrXML are its speed and its simplicity. It ideally fits into realtime projects which need to read xml data without overhead, like games. irrXML was originally written as part of the Irrlicht Engine but after it has become quite mature it now has become a separate project.
SSXML(Supper Simple XML) <LGPL>
SSXML is a very small and simple XML parser. It is designed to have few features. It supports SAX and DOM, searching by tag, and building a list of common tags.
Arabica XML Toolkit for C++ <BSD>
Arabica is an XML parser toolkit written in C++ which provides SAX2, DOM Level 2 and XPath 1.0 implementations.
XMLCPP Library <BSD>
The XMLCPP library provides the implementation of non-validating XmlPull API v1. It can handle any encoding styles that are supported by `iconv' library. The parsed results are available in the form of std::wstring. So it can handle unicode charset.
RapidXml <MIT>
RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility.
  • for C言語
libxml/libxml2(The XML C parser and toolkit of Gnome) <MIT>
UNIX系では一般的なパーサ。
XML Security Library <MIT>
XML Security Library is a C library based on LibXML2. The library supports major XML security standards:
  1. XML Signature
  2. XML Encryption
  3. Canonical XML (was included in LibXML2)
  4. Exclusive Canonical XML (was included in LibXML2)
The Expat XML Parser <MIT>
Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).
PocketSOAPで使われている。
SCEW(Simple C Expat Wrapper) <LGPL>
The aim of SCEW is to provide an easy interface around the XML Expat parser.
Parsifal XML Parser C library <LGPL>
C言語向け。Java向けのSAXベース。
libnxml <LGPL>
nXML is a C library for parsing, writing and creating XML 1.0 and 1.1 files or streams. It supports utf-8, utf-16be and utf-16le, ucs-4 (1234, 4321, 2143, 2312).
CWXML/BXML <LGPL>
CWXML is an high-performance, open-source C-language library for parsing and generating XML and BXML (below) formats with a straightforward API.
ezXML <MIT>
An XML parser C library that's simple and easy to use. Inspired by simpleXML for PHP.
Mini-XML <LGPL>
Mini-XML is a small XML parsing library that you can use to read and write XML and XML-like data files in your application without requiring large non-standard libraries. Mini-XML only requires an ANSI C compatible compiler (GCC works, as do most vendors' ANSI C compilers) and a "make" program.
XML Parse Lib <MIT>
XML-Parse library is a lightweight set of functions for parsing, checking, and creating xml files. It can support stream-oriented, SAX or DOM parsing styles, and includes an optional xsd schema validator and graphical schema generator.
NunniMCAX <LGPL>
NunniMCAX is a C, non validating XML parser. Its APIs and functioning are very similar to SAX. That means that if you're familiar with SAX it will be straitforward to start using it.
  • 参考情報
japan.linux.com > Libxml2を使う
  • 参考書籍
C++によるXML開発技法
¥-

XSLT(XSL Transformations)

Xalan-C++ <Apache License V2.0>
Xalan is an XSLT processor for transforming XML documents into HTML, text, or other XML document types.
libxslt <MIT>
Libxslt is the XSLT C library developed for the Gnome project. XSLT itself is a an XML language to define transformation for XML. Libxslt is based on libxml2 the XML C library developed for the Gnome project. It also implements most of the EXSLT set of processor-portable extensions functions and some of Saxon's evaluate and expressions extensions.

WSDL(Web Services Description Language)

C++ WSDL Parser
An efficient C++ WSDL library which parses a WSDL file & provides APIs to access WSDL elements.
It has a library for parsing xml schemas and validating instances.
It uses xml pull parsing methodology,and is meant to be semantically equivalent to WSDL4J.

SGML(Standard Generalized Markup Language)

SP(SGML Parser)
A free, object-oriented toolkit for SGML parsing and entity management.

RSS

libmrss <LGPL>
mRSS is a C library for parsing, writing and creating RSS (0.91, 0.92, 1.0, 2.0) files or streams
Redland RDF Libraries <Apache License V2.0/GPL/LGPL>
Redland is a set of object-based, modular and portable C RDF libraries providing RDF APIs for the graph, storage, RDF/XML parsing and serializing (Raptor), RDQL and SPARQL RDF querying (Rasqal). Language APIs in Perl, PHP, Python, Ruby and others.

WBXML

WBXML Library <GPL>
The WBXML Library is a C library for handling WBXML (Wireless Binary XML) documents. It consists of a WBXML Parser (with a SAX like interface), a generic WBXML Encoder, and an internal representation of the document (WBXMLTree).

JSON(JavaScript Object Notation)

json-cpp <Public Domain>
jsoncpp is an implementation of a JSON reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate.
JSON++
JSON++ is a light-weight JSON parser written in C++.
picojson <BSD>
サイボウズ・ラボ謹製のヘッダファイル1つで利用可能なJSONライブラリ。
dropbox/json11 <BSD>
Dropbox謹製のC++11 JSONライブラリ。
  • for C言語
JSON-C
A JSON implementation in C

HTML(HyperText Markup Language)

libhtmlparse
libhtmlparse is a lightweight HTML parsing library.
htmlcxx <GPL>
htmlcxx is a simple non-validating html parser library for C++. It allows to fully dump the original html document, character by character, from the parse tree. It also has an intuitive tree traversal API.

プログラミング言語解析

GNU Bison
Bison is a general-purpose parser generator that converts an annotated context-free grammar into an LALR(1) or GLR parser for that grammar.
flex(The Fast Lexical Analyzer) / http://sf.net/projects/flex <BSD>
Flex is a fast lexical analyser generator. It is a tool for generating programs that perform pattern-matching on text. There are many applications for Flex, including writing compilers in conjunction with GNU Bison.
flex++/bison++ for Win32
flex++/bison++ are extentions to GNU flex/bison that can generate parser/lexer in C++ classes.

図形

グラフ

AGD(A Library of Algorithms for Graph Drawing)
Graphlet
GTL(Graph Template Library)
GDT(Graph Drawing Toolkit)
地球流体電脳ライブラリ
GrWinグラフィックス・ライブラリ
GOBLIN <LGPL>
GOBLIN is a C++ class library focussed on graph optimization and network programming problems.
Qwt - Qt Widgets for Technical Applications <LGPL>
The Qwt library contains GUI Components and utility classes which are primarily useful for programs with a technical background. Beside a 2D plot widget it provides scales, sliders, dials, compasses, thermometers, wheels and knobs to control or display values, arrays, or ranges of type double.
QwtPlot3D <zlib>
QwtPlot3D is not a program, but a feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets for programmers.
liborigin <GPL>
OriginLab社 のOriginのOPJ形式ファイルを読み込む事が可能らしい。
QtiPlot - Data analysis and scientific plotting <GPL>
QtiPlot is a clone of Origin for data analysis and scientific plotting.
mfGraph Library <LGPL>
mfGraph is a graph rendering library for interactive applications. Written in C++ and Python, mfGraph parses GraphViz DOT and XDOT files and provides rendering and hit-testing facilities. Supports Microsoft Windows natively, GNU/Linux through wxPython.
PLplot <BSD/LGPL>
Scientific graphics plotting library, supporting multiple languages.
  • 関連ページ
link集/GUI/wxWidgets#Ext
wxWidgets関連はこちらのページを参照方。
  • Link集へのLink
http://www.codeguru.com/Cpp/controls/controls/
グラフ表示コントロールが多数。グラフ以外のものも色々あります。

Barcode

GNU Barcode / ftp://core.ring.gr.jp/pub/GNU/barcode/ <GPL>
GNU Barcode is a tool to convert text strings to printed bars. It supports a variety of standard codes to represent the textual strings and creates postscript output. Supports UPC, EAN, ISBN, CODE39 and other encoding standards
pdf417_encode <GPL>
This program takes an ascii input text file and converts it to the pdf417 barcode. It supports text compression, numeric compression and byte compression. It currently produces postscript and pbm output for the barcode image. produces post
barcode fonts and encoders <GPL>
TTF Barcode fonts, encoders and VB macros for Windows. Support PDF417, EAN13, code128, EAN128, 3 of 9 and 2 of 5 interleaved barcodes. Since fonts are truetype, they can be used with Linux.
ZBar bar code reader <LGPL>
It supports many popular symbologies (types of bar codes) including EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code.
  • QRコード
有限会社 サイテック > QR Code Decode Library <商用>
『QR Code Decode Library』 はQRコードシンボルが描かれた画像ファイルからシンボルを認識・解読するライブラリです。
有限会社 サイテック > シンボルイメージ生成プログラム<ソース公開>
QRコードの生成ツール。ソースコードの公開も行われている。ライセンスも太っ腹。
《使用について》
・プログラム本体の使用や配布
・プログラムソースを改造しての新たなアプリケーション作成、及びその配布・販売
・プログラムソースの一部を利用したアプリケーション作成、及びその配布・販売
・商用での利用
上記全てについて制限しません。また、使用においての許諾、弊社名の記載も不要です。
どうぞご自由にお使いください。
ナカタの Digital Wonder Land > コンピュータの国 > フリーソフト > その他 > QR コード エンコーダー
QR コードを作成するプログラムです。swetake さんのサイトで公開されていた Java プログラムを C++ に移植しました。
ナカタの Digital Wonder Land > コンピュータの国 > フリーソフト > その他 > QR コード デコーダー <要確認>
QR コードのデコーダの公開。
libdecodeqr <LGPL>
"libdecodeqr" is a C/C++ library for decoding QR code based on JIS X 0510 and ISO/IEC18004.
libqrencode <LGPL>
libqrencode は QR コードを生成するための C ライブラリです。 QR コードは二次元バーコードの一種で、数字なら最大約7000桁、英数字だと最大約4000字を埋め込むことができ、また誤り訂正能力に優れています。

GUI(Graphical User Interface)

link集/GUI/C++
別ページに移動。

Memory

link集/開発補助ツール系#MemoryLeak
MemoryLeakチェック関連はこちらを参照方。
OSSP mm - Shared Memory Allocation
OSSP mm is a 2-layer abstraction library which simplifies the usage of shared memory between forked (and this way strongly related) processes under Unix platforms.
VRB(Virtual Ring Buffer) <LGPL>
The Virtual Ring Buffer (VRB) is an implementation of a character FIFO ring buffer. It provides direct access to the buffer so the calling program can construct output data in place, or parse input data in place, without the extra step of copying data to or from a calling program provided buffer area.
libarena
libarena is a custom memory allocator interface and implementation. Three allocators are provided: flat "LIFO" arena allocator, object pool allocator and a malloc(3) wrapper. These can be used directly, or through their exported prototype interfaces.
nedmalloc <BSD>
A thread caching malloc implementation written in C for multiple threads without lock contention based on dlmalloc
libhoard(The Hoard Memory Allocator) <GPL>
The Hoard memory allocator is a fast, scalable, and memory-efficient memory allocator. It runs on a variety of platforms, including Linux, Solaris, and Windows. Hoard is a drop-in replacement for malloc() that can dramatically improve application performance, especially for multithreaded programs running on multiprocessors.
google-perftools <BSD>
These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler.

GC(Garbage Collection)

Boehm-Demers-Weiser Garbage Collector / http://sf.net/projects/bdwgc
The Boehm-Demers-Weiser conservative garbage collector. The CVS source of the version 7+ collector resides here.
ぱっと見で分かりにくいので ソースコードはここ からDownload。
  • 関連情報
NuWiki > Boehm GC
Boehm GCの解説及びリンク集。
K.Sasada's Home Page > Prog > Boehm GC を使ってみる
BoehmGCの動作検証及び速度比較情報。
NAKAMURA Minoru's Home Page > プログラミング全般
Boehm GC ライブラリを使って C/C++ でもガーベージコレクションをしよう
AGM::LibGC
The Code Project > AGM::LibGC: a C++ garbage collection library
Kaffe-gc
OpenSourceなJavaVMのimplementationであるKaffeの内部で使用されている。
GCPtr - A Simple Garbage Collector for C++
The garbage collector uses four classes: GCPtr, GCInfo, Iter, and OutOfRangeExc. Before examining the code in detail, it will be helpful to understand the role each class plays.
Smieciuch Garbage Collector <University of Illinois/NCSA Open Source License>
Portable PRECISE tracing collector for C++ (as oposed to popular Hans Boehm CONSERVATIVE collector). It should not mess other data with collected pointers ! And thats a feat! Smieciuch defines smart pointer classes which behave like normal C/C++ pointers
libgcroots
SigScheme uses and bundles a garbage collector supporting library separated from Boehm GC, named libgcroots. This library abstracts architecture-dependent part of garbage collector roots acquisition such as register windows of SPARC and register stack backing store of IA-64.
GC++ <Open Software License>
GC++, a garbage collector for C++
  • 関連書籍
The Art of C++
GCPtrの記事の元ネタ本。
ASIN:4873112885
Boehm GCの仕組み

Device

  • Keyboard
KBDE(KeyBoarD Emulator)
It allow emulate keyboard input for keyboardless x86 computers.
  • SCSI(Small Computer System Interface)
Adaptec > Windows ASPI(Advanced SCSI Programming Interface) Layer
  • CD/DVD
Padus > The PFC(Padus Foundation Class) SDK <Price>
The Padus Foundation Class is a software development toolkit for CD & DVD authoring, duplication, extraction, and mastering.
DiscJugglerの開発元。
株式会社アプリックス > CD/DVDライティングエンジン「AP ENGINE 3」
このたびのAP ENGINE 3は、お客様からのご要望が高かったMicrosoft .NETFramework1.1に対応、開発言語としてC++に加えVisual Basic® / VisualC#®が利用できます。また、Microsoft Word/ExcelからCD/DVDを作成する機能(※1)が用意されるなど、Windows用アプリケーションへのAP ENGINEの組み込みを容易に実現するための機能強化が行われています。
※法人向けのライブラリなので個人向けの公開はない。
  • USB(Universal Serial Bus)
libusb
LibUsb-Win32
  • Tablet
WACOM Software Developer Support > PC > Samples and Downloads > WinTab
WACOM製のペンタブレットの制御ライブラリ。VB用のサンプルコードもある。
5000円位で販売されている WACOM FT-0203-U PenStation でも使えました。
  • Printer
Ricoh Developer Program(RiDP)
RiDPでは、OSがもつ共通の機能を利用したアプリケーション開発のためのソフトウェア資源を開発情報としてご提供いたします。
  • Robot
Orocos(The Open RObot COntrol Software)
The Open RObot COntrol Software (Orocos) framework applies software patterns in C++ to achieve real-time execution of software components and provides an infrastructure to quickly integrate them in a real-time operating system such as RTAI or RTLinux, although it can be tested on normal Linux systems.
  • OCR
Tesseract OCR <Apache License V2.0>
A commercial quality OCR engine originally developed at HP between 1985 and 1995. In 1995, this engine was among the top 3 evaluated by UNLV. It was open-sourced by HP and UNLV in 2005.

携帯電話

link集/携帯電話関連
別ページを参照方。

IP電話

++Skype <LGPL>
What is ++Skype? ++Skype is C++ library of carefully designed classes. It can help you in the several situations. Do you need to develop platform independent skype add-on software? Try ++Skype! Do you want to become an expert in the low-level Skype API implementations (D-BUS, Windows messages)? If no, try ++Skype!

Thread

POSIX Threads(pthreads) for Win32 <LGPL>
Pthreads-win32 is an Open Source Software implementation of the Threads component of the POSIX 1003.1c 1995 Standard for Microsoft's Win32 environment.
PTL(Portable Thread Library)
PTL は UNIX 上で動作するユーザレベルのマルチスレッドライブラリです。
NPTL(Native POSIX Threading Library)
Linuxのglibcに組み込まれている。
PELT(POSIX Emulation Layer for Windows Threads) <LGPL>
This project is targeting to implement a 100% POSIX compliant wrapper for windows threads which uses windows native calls.
MIT pthread
PMPthreads(Patched MIT pthreads)
ZThread <LGPL>
Advanced platform-independant, Object-Oriented threading and synchronization library. Designed and tested under POSIX & Win32 systems. Not just another thread wrapper.
C++ Thread <GPL>
C++ Threads is a development library, that provides classes for threaded applications in native C++ code.
OSSP GNU pth - Portable Threads
Pth is a very portable POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for multiple threads of execution (aka ``multithreading'') inside event-driven applications.
OpenThreads <LGPL>
This library is intended to provide a minimal & complete Object-Oriented (OO) thread interface for C++ programmers. It is loosely modeled on the Java thread API, and the POSIX Threads standards.
RT++ <LGPL>
This report presents RT++, a software package that provides higher-order threads in the programming language C++.
C Thread Foundation Library <LGPL>
libctf is a c thread foundation library that extends pthread functionality by providing common utilities for the programmer. This will ease and enhance threaded program development.
UPthreads <BSD>
Upthreads is a user space implementation of the POSIX thread library implemented using setjmp/longjump (or equivalent). This libpthreads implementation is useful when threads are need in deeply embedded systems with little OS support.
threadpool <Boost Software License>
threadpool is a cross-platform C++ thread pool library. It provides a convenient way for dispatching asynchronous tasks and can be easily customized. threadpool is based on the high-quality Boost source libraries.
just::thread <商用>
With the just::thread C++ Standard Thread Library implementation, you can start using the C++0x thread library today ― no need to wait for a new compiler.
  • 参考情報
Index of /JM/html/glibc-linuxthreads/man3
JM Projectのpthread関連Manpage。
POSIX Threads Programming
The comp.programming.threads FAQ
Christopher Angelo Provenzano(MIT) > Introduction to Programming Threads
IBM developerWorks > ハイパー・スレッド処理でLinuxを高速化
Microsoft MTGDI C++ Sample
This is a sample of a multithread illustration, where GDI resources are converted to MFC objects and back.
C Thread Foundation Library(libctf) <LGPL>
libctf is a c thread foundation library that extends pthread functionality by providing common utilities for the programmer. This will ease and enhance threaded program development.
  • 関連書籍
ASIN:4756120202
原書Programming with POSIX® Threads (Addison-Wesley Professional Computing Series)
正誤表&ソースコード
Pスレッドプログラミング
ASIN:4900900664
ASIN:4894712571
サポートページ英語の原書サポートページ
マルチスレッドプログラミング入門 (サンソフトプレスシリーズ)
ASIN:4756117848
ASIN:4900900699
Win32マルチスレッドプログラミング (Ascii Addison Wesley programming series)
マルチコアCPUのための並列プログラミング
サポートページ
インテル スレッディング・ビルディング・ブロック ―マルチコア時代のC++並列プログラミング
ASIN:4877831967

ネットワーク通信

LBNL's Network Research Group > libpcap(the Packet Capture library)
WinPcapのベースとなっているライブラリ。
WinPcap(the Free Packet Capture Library for Windows)
WinPcap is an open source library for packet capture and network analysis for the Win32 platforms. It includes a kernel-level packet filter, a low-level dynamic link library (packet.dll), and a high-level and system-independent library (wpcap.dll, based on libpcap version 0.6.2).
PSPTunnel
PSPTunnel はアドホック対戦に対応したPSPゲームタイトルをインターネット越しのユーザーと対戦するためのLayer2トンネリングソフトウエアです.
WinPcapを利用している。
PvPGN(Player vs. Player Gaming Network) <GPL>
Player vs. Player Gaming Network is a bnetd-based gaming network server emulation project. It currently supports all Battle.Net clients.

Socket

ACE™ (The ADAPTIVE Communication Environment) <URL>
ネットワークプログラムを開発する為のクラスライブラリ&フレームワーク。
C++ Sockets Library <GPL>
This is a GPL licensed C++ class library wrapping the berkeley sockets C API, and therefore works on most unixes and also win32.
Socket++
Socket++ library defines a family of C++ classes that can be used more effectively than directly calling the underlying low-level system functions. One distinct advantage of the socket++ is that it has the same interface as that of the iostream so that the users can perform type-safe input output. See your local IOStream library documentation for more information on iostreams.
Librascal
Librascal is a C/C++ library for asynchronous networking.
The library supports TCP and UDP protocols, basic DNS resolution and fully supports service discovery.
asio/Boost.Asio <Boost Software License>
asio is a cross-platform C++ library for network programming that provides developers with a consistent asynchronous I/O model using a modern C++ approach.
Simple Server Objects(ssobjects) <Apache License>
Simple Server Objects(ssobjects) are a set of classes meant to take the chore out of writing server and client applications that use TCP/IP for communicating.
SimpleComm Client <GPL>
SimpleComm Client (Local network instant messenger) for Linux/Windows developped with C++ and Qt
Naughter Software > Network Freeware
W3Mfc, CWSocket, CSSLSocketといったMFCラッパークラスの公開。
LION(Lundman's Input Output Network library) <LGPL>
The LiON Library is a full nonblocking, single thread library with an API that is portable and easy to use. It has full network support, files, and pipes (for spawning children, or processes to communicate with). All types can also be rate (KB/s) limited, and full SSL support is included.
mySocket <GPL>
Cross-platform C++ socket library
Endpoint C++ Socket Library <BSD>
Endpoint is a portable C++ socket library, which runs on Unix or Win32, utilizing IPv4 or IPv6, and supports TCP, UDP, and raw sockets as clients or servers. Endpoint is easy to use for the beginning or advanced socket programmer.
ASSA Library <LGPL>
ASSA is a UNIX/Linux Object-Oriented C++ networking (BSD sockets) library and application framework based on Adaptive Communication Patterns. ASSA is designed to improve productivity of writing network-oriented client/server applications.
  • 関連情報
KSK's Web Page
Winsock Programmer's FAQ(in Japanese)/Programming UNIX Socket FAQ等。
IBM dW > Linux
Linuxにおけるソケット機能の向上
Linuxソケット・プログラミングの5つの落とし穴
  • 関連ページ
link集/SOAP
SOAP関連はこちらを参照方。
  • 関連書籍
ASIN:4894714787
税込 円
ASIN:0201795256
税込 円
ACE Programmer's Guide, The: Practical Design Patterns for Network and Systems Programming
税込 ¥ 16,772円
WinSock2プログラミング―Windows Sockets APIによるネットワークプログラミングのすべて
税込 円。サポートページ
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
税込 ¥ 22,890円。サポートページ英語の原書サポートページ
ASIN:4894712571
税込 円。サポートページ英語の原書サポートページ
TCP・IP解析とソケットプログラミング
税込 ¥ 6,048円
TCP/IPによるネットワーク構築〈Vol.1〉原理・プロトコル・アーキテクチャ
税込 ¥ 8,424円
ASIN:4320029992
税込 円
ASIN:4320120841
税込 円
C for Linux2超実践Linuxネットワークプログラミング
税込 ¥ 28,990円。サポートページ
ASIN:4797334797
税込 円。サポートページ
いまどきのソケットプログラミング
税込 円。
Linuxネットワークプログラミング
税込 ¥ 25,154円。
ASIN:4798028622
税込 円。

HTTP/HTTPS/FTP

Libwww - the W3C Protocol Library
Libwww is a highly modular, general-purpose client side Web API written in C for Unix and Windows (Win32). It's well suited for both small and large applications, like browser/editors, robots, batch tools, etc.
libcURL <MIT/X>
libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP.
libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported and fast.
開発言語のCurlとは無関係。
cURLpp <MIT>
cURLpp is a C++ wrapper for libcURL.
wxCURL <wxWindows Library Licence>
wxCURL is a simplified and integrated interface between LibCURL and wxWidgets. wxCURL provides several sub-classes for simplified interfaces to HTTP, WebDAV, FTP and Telnet based resources.
C++ Portable Components
The C++ Portable Components are a collection of open-source class libraries that simplify and accelerate the development of network-centric, portable applications in C++.
CPPSERV
CPPSERV is an application server that provides Servlet-like API to C++ programmers.
Wt - a Web Toolkit <AFFERO GPL>
Wt (pronounce wit-ty), is a C++ library to develop web applications. The API is widget-centric, and inspired by existing C++ Graphical User Interface APIs. To the developer, it offers complete abstraction of any web-specific implementation details.
neon <GPL>
neon is an HTTP and WebDAV client library, with a C interface. Subversionとの組み合わせで利用されている。
libsoup <LGPL>
libsoup is an HTTP client/server library. It uses GObjects and the glib main loop and integrates well with GNOME and GTK+ applications.
C++ Network Library <Boost Software License>
The cpp-netlib is a library that provides application layer protocol support using modern C++ techniques. boostベース。
WinHttpWrappers
WinHttpWrappers, a set of MFC classes to encapsulate WinHttp and especially its asynchronous support.

Mail

BLAT for Windows
Blat is a Public Domain Windows 95/NT console utility that sends the contents of a file in an e-mail message using the SMTP protocol.
BlatJ - Blatの日本語対応版やCOM版BlatJの提供等。
Baba Centerfolds
BASP21 DLL(びーえーえすぴーにじゅういち)は、ASPの VBScript やVisual Basic、EXCEL VBA WSH(Windows Scripting Host)などから使える汎用のコンポーネントです。
株式会社パワーソフト > ダウンロード > PsMailLib
jwSMTP
jwSMTP, Send email programmatically (C++ code/lib).
Linux, Windows etc. Attachments, Multiple recipients, Cc/Bcc recipients supported. MX lookup or send to an SMTP server direct. LOGIN and PLAIN authentication now supported.

CORBA(Common Object Request Broker Architecture)

MICO CORBA
TAO(The ACE ORB)
omniORB
omniEvents
omniEvents enables CORBA applications to communicate through asynchronous broadcast channels rather than direct method calls. The server runs on Windows, and most Unixes. It is a small, efficient implementation of the Object Management Group's Event Service specification designed to work with omniORB.
omniIFR
omniIFR2 is an implementation of the Interface Repository, for omniORB, a free CORBA ORB for C++ and Python.
MyORB
ORBit
ORBit2
ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) featuring mature C, C++ and Python bindings.
orbitcpp
orbitcpp provides C++ bindings for the ORBit Corba ORB.
  • CCM(CORBA Component Model)
MicoCCM <GPL>
StarCCM
QEDO(QoS Enabled Distributed Objects)
Qedo is an implementation of the CORBA Component Model (CCM) extended by Quality of Service (QoS) support.
  • 関連情報
株式会社オージス総研 > CORBA Component Model 入門
C++でCORBA
  • 関連書籍
オープンソースCORBA:MICOの実装
税込 円
CORBA&COMインテグレーションガイド―デスクトップ環境標準技術とサーバー環境標準技術の統合 (Dev Selection)
税込 ¥ 21,868円
ASIN:0201379279
税込 円

IEEE Standard 1516 / HLA / RTI

CERTI <LGPL>
CERTI is a runtime infrastructure for distributed discrete event simulations developed at ONERA(Office National d'Études et de Recherches Aérospatiales). It provides a set of services used by simulators to interoperate (such as object management, time management, optimization services, etc.)
RTI NG Pro™ / DMSO RTI NG <商用>
サポートページ
無償公開されていた DMSO RTI NG 1.3v6のWindowsNT4.0/Windows2000/RHL7.2版はここ から入手可能。但しインストーラだけでドキュメント類は参照不可。
MSI(Multi-Simulation Interface) <LGPL>
The Multi-Simulator Interface(MSI) is a simulation interconnection engine. The MSI serves the same purpose as HLA and supports most of HLA's functionality(and more).
M.AG.NET.AR > Chronos
Chronos is an advanced networking engine which implements the U.S. Department of Defense's HLA RTI interface using DirectPlay.
Portico <CDDL(Common Development and Distribution License)>
An open source implementation of the High Level Architecture Run-Time Infrastructure. Focused on modularity and flexibility, Portico provides an extensible environment to support HLA simulation development and research.
Middlesim <CDDL(Common Development and Distribution License)>
Middlesim is a light-weight HLA simulation middleware framework. Providing relief from many of the annoying programming “features” of the HLA, it provides a simplified API that is both concise and easy to use.
  • 関連アプリ
Higher Level Architecture 3D Simulation Viewer <GPL>
Higher Level Architecture 3D Simulation Viewer is able to join an HLA simulation. The viewer itself is a HLA federate and is therefore able to join the HLA Run Time Infrastructure to display all objects joined in the federation execution.
HLA/lib3dsを利用したプログラム。

MPI(Message Passing Interface)

link集/MPI
こちらのページを参照方。

MTP(Media Transfer Protocol) / PTP(Picture Transfer Protocol)

libmtp <LGPL>
libmtp is a LGPL library implementation of the Media Transfer Protocol (MTP), a superset of the Picture Transfer Protocol (PTP).

Document/FileIO/帳票

ファイルフォーマットに関する情報は link集/規格物#FileFormat を参照方。

SDL_Config <LGPL>
SDL_Config is library designed for reading and writing configuration files in a easy, cross-platform way.
NetCDF
NetCDF (network Common Data Form) is an interface for array-oriented data access and a library that provides an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data. Together, the interface, library, and format support the creation, access, and sharing of scientific data.
libany2uni <GPL>
This is a library to extract raw unicode text from any written documents (office documents). It should be useful to developpers of search engine, text processing, corpus analysis, ....
libConfig++ <LGPL>
libConfig++ is a portable and flexible C++ library for reading configuration files which were written in C style syntax.
SimpleIni / http://freshmeat.net/projects/simpleini <MIT/X>
SimpleIni is a cross-platform C++ library that provides a simple API to read and write INI-style configuration files. It supports data files in ASCII, MBCS, and Unicode.
  • 関連デバイス
サクラ OAショナリー データマスク定規
昔 inch で測れる定規を色々探しました。結局これしか見つかりませんでした。

Archive

libarxx(Advanced Resource Archives for C++) <GPL>
libarxx is a C++ archiver with advanced features, like data synchronization and merging of multiple archives.
PhysicsFS <zlib>
PhysicsFS is a library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem.
Microsoft Delta Compression Application Programming Interfaces
Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well. The following topics discuss Delta Compression Application Programming Interfaces (APIs) currently available in the Windows Platform.
liblzw <Public Domain>
As support was added to libstdf to read compressed files, the request came up to read LZW compressed files. Many may be familiar with this compression algorithm via the classical UNIX programs compress and uncompress which manipulate files named with a .Z extension, or perhaps the usage of LZW in compressing GIF/TIFF image data.
LHa for UNIX
当プロジェクトでは LHa for UNIX のメンテナンスを行っています。ここでメンテ/配布される LHa for UNIX は、version 1.14i (岡本継男氏メンテナンス版) を元に autoconf/automake 化し、いくつかの機能追加やバグ修正を施しています。
Basic Compression Library <zlib/libpng>
Basic Compression Library is a portable library of well known compression algorithms, such as Huffman coding, written in standard ANSI C. It is intended to serve as a set of building blocks for specialized compression algorithms.
  • 統合アーカイバI/F
統合アーカイバプロジェクト > 開 発 室 / for Programmers
総合情報。
DoboWiki > 統合アーカイバDLLの相違
Arcdll Project
いくつかの統合アーカイバ仕様のDLLを開発、管理するプロジェクトです。
Micco's HomePage
UNLHA32.DLL, UNARJ32.DLL
TAR32.DLL <Public Domain>
cpio,rpm,deb,ar(a.out)形式に対応しています。TAR32.DLL Version 2.xは基本的にPublic Domain Softwareとして配布、改造、ソース等の一部利用など自由に行ってください。ただし、ZLIB及びlibbzip2を用いていますので、この部分についてはそれぞれの利用条件に従ってください。
CAB32 - 統合アーカイバプジェクト
Cab32.dll
AkkyWareHouse <LGPL>
7-zip32.dll
AMA Soft
UnGCA32.dll
  • TAR(Tape ARchive format)
libtar / http://freshmeat.net/projects/libtar/ <BSD>
libtar is a C library for manipulating tar archives. It supports both the strict POSIX tar format and many of the commonly-used GNU extensions.
  • GZIP
zlib <zlib>
gzip/zip/png
gzstream <LGPL>
Gzstream is a small C++ library, basically just a wrapper, that provides the functionality of the zlib C-library in a C++ iostream.
  • BZIP
bzip2 and libbzip2 <BSD-style>
bzip2 is a freely available, patent free (see below), high-quality data compressor.
zfstream <LGPL>
zfstream is a small C++ library which provides an abstraction API for reading and writing compressed and non-compressed files using the same API. It supports libz and libbz2 compression schemes and is based upon the gzstream class written by Deepak Bandyopadhyay and Lutz Kettner.
  • ZIP
Minizip : Zip and UnZip 1.01 additionnal library
The Code Project > C++ wrapper for Gilles Vollant's Unzip API
The ZipArchive library
This library adds zip compression and decompression functionality to your program, allowing you to create and modify ZIP files in the compatible way with WinZip, PKZIP and other popular archivers.
ZZIPlib Library <GPL/LGPL/MPL 1.1>
The ZZIPlib provides read access on ZIP-archives. The library uses only the patent-free compression-algorithms supported by Zlib. It provides functions that transparently access files being either real files or zipped files, both with the same filepath
libzip
libzip is a C library for reading, creating, and modifying zip archives. Files can be added from data buffers, files, or compressed data copied directly from other zip archives. Changes made without closing the archive can be reverted.
LibZip for VisualStudio <Public Domain>
This project provide a workspace in order to use libzip with Visual Studio. Worksapce has been extracted from mysql and adapted with last version of LibZip. Key-words : libzip, Visual Studio, MSVS, VisualStudio, sln, vcproj.
上記のlibzipをVisualC++ 2005向けにビルド出来るようにしたもの。
  • LZMA(Lempel-Ziv-Markov chain-Algorithm)
7-Zip > LZMA SDK <Public Domain>
v4.62以降はPublic Domainとなった。
Lzip <GPL>
Lzip is a lossless file compressor based on the LZMA(Lempel-Ziv-Markov chain-Algorithm) algorithm designed by Igor Pavlov. The high compression of LZMA comes from combining two basic, well-proven compression ideas: sliding dictionaries(i.e. LZ77/78), and markov models(i.e. the thing used by every compression algorithm that uses a range encoder or similar order-0 entropy coder as its last stage) with segregation of contexts according to what the bits are used for.
p7zip <LGPL>
p7zip is a quick port of 7z.exe and 7za.exe (command line version of 7zip, see www.7-zip.org) for Unix. 7-Zip is a file archiver with highest compression ratio. Since 4.10, p7zip (like 7-zip) supports little-endian and big-endian machines.
  • CAB(Cabinet)
Microsoft Cabinet SDK
This release of the Cabinet Software Development Kit (formerly called the Cabinet Resource Kit) provides complete documentation of cabinet file internals and the various data compression formats used in cabinet files, including the new LZX data compression technology.
  • RAR
UnRAR source
  • GCA(G Compression Archiver)
GCA SDK
  • 関連書籍
LHAとZIP―圧縮アルゴリズム×プログラミング入門
圧縮アルゴリズム―符号化の原理とC言語による実装 (C magazine)
詳解 圧縮処理プログラミング

Office文書

libwpd <LGPL>
libwpd is a general purpose library for reading (or, interpreting data from) WordPerfect files.
The library is not a stand-alone utility: it is designed to be used by another program (e.g.: a word processor) as an in-process component.
libcsv <LGPL>
libcsv is a small, simple and fast CSV library written in pure ANSI C89 that can read and write CSV files. It provide a straight-forward interface using callback functions to handle parsed fields and rows and can parse improperly formatted CSV files.
富士ゼロックス > DocuWorks Development Tool Kit
DocuWorks文書への相互変換が可能。
Microsoft Works format import library <LGPL>
libwps is a Microsoft Works file format import filter based on top of the libwpd (which is already used in three word processors). Currently, libwps is a very new project, but it imports Works version 4 format with some success.
wvWare <GPL>
wvWare is the continuation of Caolan McNamara's wv - the MSWord library. Efforts are underway to make this library more correct, robust, and turn it into a Word97 exporter.
xlsLib <LGPL>
A multiplatform C++ library for dynamic generation of Excel .xls files containing multiple worksheets. Unlike .csv files, these can be directly opened by Excel and thus provide an excellent way to output large data sets that require further analysis.

PDF(Portable Document Format)

Adobe® Acrobat® SDK
The full Adobe® Acrobat® SDK contains the documentation, headers, sample code, and tools developers need to build plug-ins, integrate Acrobat Standard, Acrobat Professional, and Adobe Reader into another solution, or automate processes.
FastIO Systems > ClibPDF <FastIO ClibPDF License>
ClibPDF is a library of ANSI C functions, distributed as source code, for creating PDF files directly via C language programs without relying on any Adobe Acrobat® tools and related products.
サンプルにはPDFに日本語の出力したものもある。またプロジェクトのメルアドには日本語メールも送信OKと書かれている。
panda / http://sf.net/projects/panda <GPL/LGPL>
A PDF generation API
libpdf++ <LGPL>
libpdf++ is a C++ library to generate PDF files. It is for programs like word processor to write PDF export filters. Currently it doesn't support all PDF features, only basic simple text output and only a few fonts. However, in the future it will be a full feature PDF library.
Haru Free PDF Library <zlib/libpng>
Haru is a library for c/c++ that has the ability to generate PDF document for free. It supports most of the standard features of the Portable Document Format.
wxPdfDocument <wxWindows Library License>
wxPdfDocument allows wxWidgets applications to generate PDF documents. The code is a port of FPDF - a free PHP class for generating PDF files - to C++ using the wxWidgets library.
PoDoFo <LGPL>
The PoDoFo library is a free, portable C++ library. It can parse existing PDF files and create new ones from scratch.
poppler <GPL>
Poppler is a PDF rendering library based on the xpdf-3.0 code base.

CHM(HTML Help File)

CHM lib <LGPL>
CHMLIB is a library for dealing with Microsoft ITSS/CHM format files. Right now, it is a very simple library, but sufficient for dealing with all of the .chm files I've come across.
libCHMxx <LGPL>
This is a c++ library for accessing the Microsoft™ CHM files under Linux/UNIX systems. The code is basically built on top of the Jed Wing's CHM lib but provides many additional features. And it's of course built on top of standard c++.
libmspack <LGPL>
The purpose of libmspack is to provide both compression and decompression of some loosely related file formats used by Microsoft.

Serializing

s11n - easy object serialization in C++ <Public Domain>
s11n ("serialization") is a C++ library for easily serializing a wide variety of objects, from PODs to arbitrary streamable types to client-side Serializable types, plus sports the world's simplest STL container serialization (or so we think).
cpp xstream <LGPL>
several streambufs and iostreams that allow to compress/decompress data transparently (zlib/bzlib gzip/bzip2), serialize composite types to xdr, base64 encode/decode and tee output from one channel to several others. These can be stacked on each oth
赤紫蘇2(akaxiso) <BSD>
赤紫蘇2は、C++オブジェクトをXML文書へとシリアライズ、デシリアライズするためのライブラリです。 XML文書とC++オブジェクトを相互に変換し、C++オブジェクトの永続化を実現します。
CodeGuru > STL STL Serialization Library(STL-SL)
The STL Serialization Library is composed of two major parts: Serialization Filer and Serialization Template Classes.
XParam <GPL>
XParam is an extendable, type-safe, object-oriented tool for general object serialization in C++, good for parsing command-line parameters, cross-program and cross-platform communication, object streams, and as a plug-in framework (using polymorphism).
C++Serialization <LGPL>
CSer, pronounced like the emperor, will be a lightweight, portable, library providing C++ serialization (also known as persistence).

Etc

libsigc++ <LGPL>
libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual.
MQ4CPP(Message Queuing for C++) <LGPL>
MQ4CPP enables C++ application threads to communicate with other threads locally or remotely through the exchange of messages. A message is a request, report, and/or event that contains information needed to coordinate communication between different applications.
XXL
XXL is a library for C and C++ that provides exception handling and asset management.
SSEPlus <Apache License V2.0>
SSEPlus is a SIMD function library. It provides optimized emulation for newer SSE instructions. It also provides a rich set of high performance routines for common operations such as arithmetic, bitwise logic, and data packing and unpacking.

他言語連携

SWIG(Simplified Wrapper and Interface Generator) / http://swig.shibu.jp
SWIGはさまざまな高レベルプログラミング言語とC/C++で書かれたプログラムをつなぐ開発ツールです。SWIGは主に、Perl, Python, Tcl/Tk, Ruby, Guile, MzSchemeなどの一般的なスクリプト言語から使われますが、JavaやEiffelのような非スクリプト言語もサポート言語に含まれています。
UNO Development Kit (UDK) project <LGPL>
UNO (Universal Network Objects) is the interface-based component model of OpenOffice.org. UNO offers interoperability between different programming languages, different object models, different machine architectures and different processes; either in a local network or even via the Internet.
PL(Protein Library) <LGPL>
The Protein Library is a modular and extensible library written in C++ that provides a general toolkit for protein structure and sequence calculations. The PL can be utilized from scripting languages such as Python and Perl through its procedural API.
C++/Tcl
C++/Tcl is a library that allows easy integration between these two languages. It helps to write C++ modules that are loaded and used by Tcl applications, and also to embed Tcl interpreters in C++ applications.
JNI(Java™ Native Interface)
Java™ Native Interface (JNI) は、Java ネイティブメソッドを書いたり、Java 仮想マシン* をネイティブアプリケーションに組み込んだりするための標準プログラミングインタフェースです。
J2SE 5.0
J2SE 1.4
J2SE 1.3
Java for C++ <GPL>
"Java for C++" is a tool to generate C++-wrapper-classes for existing Java-classes. This tool reads a list of Java class names and creates source code for C++-classes to wrap them.
JNative - Java to native interface <LGPL>
This library allows developpers to access native libraries (DLL and lib.so) from java. You do NOT need to compile a line of C/C++ to use it: it's dynamic !! Now Win32 DLL and shared libraries are useable with Java ;)
Jace <BSD>
Jace is a set of C++ and Java libraries and programs based on JNI that make it incredibly easy to write C++ code that integrates with the Java Virtual Machine (JVM). Jace is like Alphawork's easyJNI, but easier to use, with more features, and more power
NoodleGlue - Bridging the divide between C++ and Java <GPL>
During the development of the Noodle Heaven interactive music platform, it was necessary to create an advanced solution for automatically wrapping C/C++ class libraries in JNI code for access from Java.
Ruby2CExtension <Ruby>
Ruby2CExtension is a Ruby to C extension translator/compiler. It takes any Ruby source file, parses it using Ruby’s builtin parser and then translates the abstract syntax tree into “equivalent” C extension code.
  • 関連書籍
JNI:Java Native Interfaceプログラミング―C/C++コードを用いたJavaアプリケーション開発 (Java books)
税込¥ 24,034円

*1 VisualBasicで作成されたDLLはActiveX DLLとなる為
*2 ここで言う Unicode とは UTF-16 の事である

ページ先頭へ   最終更新のRDF 最終更新のRSS
Last-modified: 2014-04-18 (金) 08:29:54 (1312d)
Valid XHTML 1.1 Valid CSS! [Valid RSS]