11# python-cybox [ ![ Build Status] ( https://travis-ci.org/CybOXProject/python-cybox.png )] ( https://travis-ci.org/CybOXProject/python-cybox )
22
3- A python library for parsing, manipulating, and generating CybOX content.
4-
5- This currently consists of only the XML-to-Python bindings files, but in the
6- future will contain many helper utilities and a more intuitive API.
3+ A Python library for parsing, manipulating, and generating CybOX content.
74
85For more information about CybOX, see http://cybox.mitre.org .
96
107
8+ ## Overview
9+
10+ A primary goal of the python-cybox library is to remain faithful to both the
11+ CybOX standard and to customary Python practices. There are places where these
12+ will conflict, and the goal is to make the library intuitive both to those
13+ familiar with the XML schemas (but less familiar with Python) and also to
14+ experienced Python developers who want to add CybOX support to their programs.
15+
16+ There are currently two levels of APIs for dealing with CybOX content:
17+
18+ - A low-level API is provided by auto-generated XML Schema - Python class
19+ bindings. These bindings were generated using
20+ [ generateDS] ( http://www.rexx.com/~dkuhlman/generateDS.html ) . With these,
21+ any CybOX content can be parsed from or written to XML, but requires a bit
22+ more knowledge of the actual CybOX schemas. These "binding classes" are all
23+ located in the ` cybox.bindings ` package.
24+ - A higher-level API consisting of manually designed Python classes. These
25+ "native classes" are intended to behave more like Python programmers would
26+ expect. As they are designed manually, they currently do not support the
27+ entire CybOX standard, but rather those object types we expect are used most
28+ frequently. These "native classes" also support exporting their content as
29+ Python dictionaries and lists, which can easily be converted to JSON.
30+ Importing from JSON is also supported.
31+
32+ Note: Due to the release of Version 2.0 of the CybOX Language, the full set of
33+ "native classes" will most likely never be complete for Version 1.0. If you are
34+ developing an application which MUST use Version 1.0 of the CybOX Language,
35+ please contact us (see below) so we can try to meet your needs.
36+
37+
38+ ## Versioning
39+
40+ Releases of the python-cybox library will be given ` major.minor.revision `
41+ version numbers, where ` major ` and ` minor ` correspond to the CybOX version
42+ being supported. The ` revision ` number is used to indicate new versions of
43+ the Python library itself.
44+
45+
1146## Installation
1247
13- The ' cybox' package depends on the ' lxml' XML parsing library.
48+ The ` cybox ` package depends on the ` lxml ` XML parsing library.
1449
1550To build ` lxml ` on Ubuntu, you will need the following packages from the
1651Ubuntu package repository:
@@ -21,3 +56,10 @@ Ubuntu package repository:
2156
2257For more information about installing lxml, see
2358http://lxml.de/installation.html
59+
60+
61+ ## Feedback
62+
63+ Bug reports and feature requests are welcome and encouraged. Pull requests are
64+ especially appreciated. Feel free to use the issue tracker on GitHub or send
65+ an email directly to
[email protected] .
0 commit comments