Capstone is a lightweight multi-platform, multi-architecture disassembly
framework.
Features:
* Supported architectures: ARM, ARM64 (aka ARMv8), Mips, PowerPC & X86
* Clean/simple/lightweight/intuitive architecture-neutral API
* Provide details on disassembled instruction (called "decomposer")
* Provide some semantics of the disassembled instruction, such as list of
implicit registers read & written.
* Implemented in pure C language, with bindings for Python, Ruby, C#, Java,
GO, OCaml & Vala available.
* Native support for Windows & *nix (including MacOSX, Linux, *BSD & Solaris)
* Thread-safe by design
* Distributed under the open source BSD license
Capstone is a lightweight multi-platform, multi-architecture disassembly
framework.
Features:
* Supported architectures: ARM, ARM64 (aka ARMv8), Mips, PowerPC & X86
* Clean/simple/lightweight/intuitive architecture-neutral API
* Provide details on disassembled instruction (called "decomposer")
* Provide some semantics of the disassembled instruction, such as list of
implicit registers read & written.
* Implemented in pure C language, with bindings for Python, Ruby, C#, Java,
GO, OCaml & Vala available.
* Native support for Windows & *nix (including MacOSX, Linux, *BSD & Solaris)
* Thread-safe by design
* Distributed under the open source BSD license
ClanLib delivers a platform independent interface to write games with. If a
game is written with ClanLib, it should be possible to compile the game under
any platform (supported by ClanLib, that is) without changes in the application
source code.
But ClanLib is not just a wrapper library, providing an common interface to
low level libraries such as DirectX, Svgalib, X11, GGI, etc. While platform
independency is ClanLib's primary goal, it also tries to be a service-minded
game SDK. In other words, authors have put great effort in to designing the API,
to ensure ClanLib's easy of use - while maintaining it's power.
ClanLib delivers a platform independent interface to write games with. If a
game is written with ClanLib, it should be possible to compile the game under
any platform (supported by ClanLib, that is) without changes in the application
source code.
But ClanLib is not just a wrapper library, providing an common interface to
low level libraries such as DirectX, Svgalib, X11, GGI, etc. While platform
independency is ClanLib's primary goal, it also tries to be a service-minded
game SDK. In other words, authors have put great effort in to designing the API,
to ensure ClanLib's easy of use - while maintaining it's power.
ClanLib delivers a platform independent interface to write games with. If a
game is written with ClanLib, it should be possible to compile the game under
any platform (supported by ClanLib, that is) without changes in the application
source code.
But ClanLib is not just a wrapper library, providing an common interface to
low level libraries such as DirectX, Svgalib, X11, GGI, etc. While platform
independency is ClanLib's primary goal, it also tries to be a service-minded
game SDK. In other words, authors have put great effort in to designing the API,
to ensure ClanLib's easy of use - while maintaining it's power.
Encore is a set of utility classes written in Objective-C for GNUstep and
Mac OS X. The motivation of writing these classes was driven by
implementing the projects BDB and FT. The classes may be useful for other
projects as well.
The classes include
- logging: A flexible logging mechanism similar to log4j. Supports
logging levels, logging contexts, different output channels per context,
configuration per xml, ...
- XML-based reflection: a configuration mechanism which is based on XML and
uses inversion of control (see tests for an example)
- a simple testing framework
- StringUtils class
- an iterator interface
Libconfig is a simple library for manipulating structured configuration
files. The file format is more compact and more readable than XML. And
unlike XML, it is type-aware, so it is not necessary to do string
parsing in application code.
Libconfig is very compact -- just 25K for the stripped C shared library
(one-fifth the size of the expat XML parser library) and 39K for the
stripped C++ shared library. This makes it well-suited for
memory-constrained systems like handheld devices.
The library includes bindings for both the C and C++ languages. It works
on POSIX-compliant UNIX systems (GNU/Linux, Mac OS X, Solaris, FreeBSD)
and Windows (2000, XP and later).
This module tries to make it easy to build Perl extensions that use
functions and typemaps provided by other perl extensions. This means
that a perl extension is treated like a shared library that provides
also a C and an XS interface besides the perl one. This works as long
as the base extension is loaded with the RTLD_GLOBAL flag (usually done
with a
sub dl_load_flags {0x01}
in the main .pm file) if you need to use functions defined in the
module.
appdirs is small Python module for determining appropriate platform-specific
dirs, e.g. a "user data dir". Those are typically platform-specific, for
instance, if running on Mac OS X, you should use:
~/Library/Application Support/<AppName>
On Linux (and other Unices) the dir, according to the XDG spec, is:
~/.local/share/<AppName>
appdirs will help the application to choose an appropriate:
- user data dir (user_data_dir)
- user config dir (user_config_dir)
- user cache dir (user_cache_dir)
- site data dir (site_data_dir)
- site config dir (site_config_dir)
- user log dir (user_log_dir)
PyInstaller is a program that converts (packages) Python programs into stand-
alone executables, under Windows, Mac OS X, and Unix-like operating systems.
Its main advantages over similar tools are that PyInstaller works with any
version of Python since 2.4, it builds smaller executables thanks to
transparent compression, it is fully multi-platform, and uses the OS support
to load the dynamic libraries, thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with third-party packages
out-of-the-box. This means that, with PyInstaller, all the required tricks
to make external packages work are already integrated within PyInstaller
itself so that there is no user intervention required.