user26689: I am going to write software that gets information from the blockchain directly.
Are there any tools or libraries to speed up that process? I am looking for things like decoding and encoding transactions, verifying signatures, scanning for certain data etc.
Preferred languages: Python or C/C++.

user3697: You probably make the right decision to not use one of the centralized API (blockchain.com, etc.).
Run you own bitcoin-core fullnode(s) and connect to the RPC or REST interface.
You could connect via python with things like http://laanwj.github.io/bitcoin-python/doc/examples.html or any other RPC client.
If you need blocks / headers / chaininfos and transactions, consider enabling bitcoind -txindex and access data over the REST API (https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md).
If you need to verify scripts, you could use libbitcoinconsensus. There is a verify function:
EXPORT_SYMBOL int bitcoinconsensus_verify_script(const unsigned char *scriptPubKey, unsigned int scriptPubKeyLen,
                                    const unsigned char *txTo        , unsigned int txToLen,
                                    unsigned int nIn, unsigned int flags, bitcoinconsensus_error* err);

Bitpays insight is also a nice library (https://github.com/bitpay/insight) but it's javascript node.js based.

26689: <p>I am going to write software that gets information from the blockchain directly.</p>

<p>Are there any tools or libraries to speed up that process? I am looking for things like decoding and encoding transactions, verifying signatures, scanning for certain data etc.</p>

<p>Preferred languages: Python or C/C++.</p>
 3697: <p>You probably make the right decision to not use one of the centralized API (blockchain.com, etc.).
Run you own bitcoin-core fullnode(s) and connect to the RPC or REST interface.</p>

<p>You could connect via python with things like <a href="http://laanwj.github.io/bitcoin-python/doc/examples.html" rel="nofollow">http://laanwj.github.io/bitcoin-python/doc/examples.html</a> or any other RPC client.</p>

<p>If you need blocks / headers / chaininfos and transactions, consider enabling bitcoind <code>-txindex</code> and access data over the REST API (<a href="https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md" rel="nofollow">https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md</a>).</p>

<p>If you need to verify scripts, you could use libbitcoinconsensus. There is a verify function:</p>

<pre><code>EXPORT_SYMBOL int bitcoinconsensus_verify_script(const unsigned char *scriptPubKey, unsigned int scriptPubKeyLen,
                                    const unsigned char *txTo        , unsigned int txToLen,
                                    unsigned int nIn, unsigned int flags, bitcoinconsensus_error* err);
</code></pre>

<p>Bitpays insight is also a nice library (<a href="https://github.com/bitpay/insight" rel="nofollow">https://github.com/bitpay/insight</a>) but it's javascript node.js based.</p>
