There are two scenarios to consider.
- An IPv4 only device accessing resources on the IPv4 Internet through an IPv6 access network.
- An IPv4 only device accessing resources on the IPv6 Internet.
There are a number of soloutions to scenario 1.
- 464xlat, the ISP runs a NAT64 and then you locally run a NAT46. Many ISPs are likely to implement the NAT46 on their home gateway devices, but if they don't then you can implement one yourself easilly enough. I expect this is what the andriod phone you mention in a comment on Sanders answer is doing.
- DS-lite, an automatic tunneling based approach, usually implemented by the ISP. This is really only an option if your ISP chooses to use it.
- Use a conventional VPN implemented with software that allows the VPN to run over IPv6.
Scenario 2 is trickier. A proxy is an option if the client supports it, a network-level soloution is theoretically possible but it's messy involving stateful DNS manipulation and carrying a risk of client traffic being sent to the wrong server, either because the state tables are reset by an outage, because the client continues using an IP after a state table entry ages out or because the client moves to a different network. I haven't seen anyone implement such a soloution.
For the time being we are mostly worried about scenario 1. Nearly all public resources are still available on the IPv4 Internet.